Codeforces Round #796 (Div. 2) A~D
Codeforces Round
A.Cirno's Perfect Bitmasks Classroom
这道题还是很简单的,主要是关注and还有xor。
不难分析到是当x的二进制表示中只有一个1时,答案就是x+1
否则答案就是lowbit(x)
B.Patchouli's Magical Talisman
这道题也不难分析。
当数列里有一个奇数时,把偶数都加在奇数上就ok了,所以答案是n-奇数个数
如果全是偶数,那么我们就找一个最少能够变成奇数的偶数,变成奇数后重复第一种操作。
res = min(log2(a[i] & -a[i])),最终答案是n - 1 + res
ps:不要忘记开long lon
C.Manipulating History
这道题用桶记录一下每个字母出现的个数,答案就是出现奇数次的字母
因为刚开始只有一个字符,其他字母出现偶数次才能抵消
D.The Enchanted Forest
这里要分类讨论一下,当k <= n 时,就要找一段最大子序列和,然后再加上走的k秒里新长的蘑菇数
当k > n时,先走k个时间,然后从头到尾走完序列,摘完所有蘑菇,这时候增加nk个蘑菇,而节点n到1又分别有1,2,3...,n个蘑菇未采集,所以要减去它
注意开long long
EF比赛时没想出来(