本来上上一周就该写的,但最近没心情写题解也没心情写题。嘛。人生被困在一望无垠的荒草里咯!
1.CF1305F
link && submission
本来想放在考试的 T4 的。没做过的同学有福辣!天才随机化
第一个结论是最终操作次数不会超过 n 。因为你可以把所有的奇数全部 +1 这样 gcd 至少是 2 然后这个操作最多 n 次。第二个结论是至少有一半的元素最多被操作了一次。超过一半的话总次数就超过 n 了一定不优。那么如果说你随机在序列中找一个数他在最终的操作序列中被操作的次数不超过 1 的概率是 \(\frac{1}{2}\)。那么我们就随便找 50 次,然后补充一个结论就是最后的 gcd 是质数的操作次数不劣于合数,所以每次把找出来的数 x、x-1、x+1 分别质因数分解再把质因数放进一个 set 暴力统计每一个质数的最终答案就好了。
2.CF1839E
link && submission
首先我们考虑能找到一种操作方法使得最后依次操作能够同时吧两个数同时消掉,如果能达成这种状态后手就赢了。而且后手决定操作次序所以这种方案一定能实现。考虑什么时候存在这种方法,就是能够把序列分成两个集合满足两个集合的和相同。
现在来证明如果一开始不能把序列分成两个和相同的集合,进行了数次操作后依旧不行。不妨设第一轮选择了两个数 x,y 且满足 x>y 。那么剩下的数如果能分出来那么一定有 x-y+s1=s2,移项发现 x+s1=y+s2,说明一开始就可以。但一开始不可以,所以不存在。
那么如果能吧原序列分成两个和相同的集合后手必胜,否则先手必胜。判断能不能用个背包就好了。
3.luoguP4899
为你我变成狼人模样