Codeforces 812

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值