Codeforces Round #381 (Div. 2) ABCD题解

不行,我得再来一组康复训练。

快速版题解:
A、B、C水题,D乱搞。

A
题意:就你要买表,可以用a元买一个表,b元一次性买两个表,c元一次性买三个表。然后你非要买4的倍数个表,问你最少花多少钱
思路:多WA几次,自然就A了
代码:381A

B
题意:你有一组数,然后给你一些区间,然后呢你要是选了这个区间,就要把区间里的所有东西都选了。不选都不选。问你最多能攒多少。
思路:模拟题
代码:381B

C
题意:有n个数,m个区间,要求呢,你去构造这n个数,使得,每个区间S的最小的mex(S)最大。mex(S)是指集合S中最小没出现的自然数(比如0、1、2、3、5的mex就是4)。
思路:找最小的区间的长度,然后一直从0排过去就好了
代码:381C

D
题意:你有一个树,点有点权,边有边权。问每个节点能控制多少节点。控制是指,从这个点A出发,到B结束,中间的边权和如果小于B的点权,那么A控制B。
思路:DFS+边权前缀和+结果前缀和。考虑B点的辐射范围,就是B往上有多少点能控制他。DFS到某个点的时候,二分边权和,找到B的辐射辐射最远的点。然后这个区间+1。区间头+1,区间尾-1,最后扫一遍统计就好。
代码:381D

你可能感兴趣的:(Codeforces Round #381 (Div. 2) ABCD题解)