A
判断会不会撞到人
判一下有人走的路有没有车经过就行了
B
n*(m+2)的矩形,一开始在左下角,移动一格需要1的时间,关灯不需要时间,两端可以上楼
问关掉所有的灯最少需要的时间
DP一下到第i层左端点和右端点的最短时间
细节注意一下(比如某层楼上面的楼层都不需要关灯了就可以停下来了)
C
每个物品有编号xi和花费ai
若买了n个物品,那么每个物品需要花费n*xi+ai
问最多买多少个物品,这种情况下的最小花费
二分n,算每个物品的花费,排个序判一下
cf的机子真快
D
看不懂
因为某些不想描述的原因,没时间做E
题目保证了每个叶子节点层数的奇偶性相同
所以从叶子节点往上标奇偶层
不考虑交换的话,判是否后手必胜,sg就是奇数层的异或和
交换的话
如果先手必胜,那么必须是奇数层和偶数层的石子互换且换后sg值为0,枚举每个奇数层的节点,可以知道和他交换的石子数必须是多少,因为ai<=1e7,所以可以开个数组存每个数字有多少个
如果先手必败,可以是奇数层之间互换,偶数层之间互换,先统计这些的方案数,再统计奇偶之间换,枚举奇数层每个节点,交换的对象石子数必须相等
Codeforces 812
最新推荐文章于 2019-01-25 14:13:46 发布