W
H
X

AtCoder Grand Contest 010

AGC 010

B

差分数组 \(b_i=a_{i+1}-a_i\),然后观察一下 \(b\) 的变化,列一下条件(略)

C

D

答案和奇偶性有很大的关系。如果在某次操作完后除掉了一个奇因数,并不会改变奇偶性,因此我们只考虑偶因数。

1、有奇数个偶数,先手必胜。因为一开始 \(\gcd=1\),所以至少有一个奇数,先手一开始让一个偶数变成奇数,\(\gcd\) 不可能为偶,这时候至少有两个奇数,后手也不可能让 \(\gcd\) 为偶数。之后也一样,不给对手改变奇偶性的机会。

2、开始时有大于一个奇数,和偶数个偶数,后手必胜。先手任意操作一次都会到达情况1的状态

3、开始有一个奇数,和偶数个偶数。先手第一次只能操作那个奇数,模拟这个过程得到新的局面(特判这个数为 \(1\) 的情况)。如果出现情况1、2就直接判断,出现3不断递归。显然至多递归 \(\log n\) 层。

E

如果已经却确定一开始的顺序,最后的结果可以用贪心的拓扑排序来得到。现在的问题就是给一些无向边定向,使得最后的拓扑序最小,同样可以用类似的贪心完成(略)

F

方案Ⅰ:先考虑只有两个点的情况,然后考虑树只有两层的情况,然后推广到普通情况。进行 \(n\) 遍树形 \(dp\)\(O(n^2)\)

方案Ⅱ:假设当前在 \(x\),如果 \(x\) 能走到的 \(y\) 都有 \(a_y>a_x\),那么先手必输。所以它一定会往 \(a_y<a_x\) 的地方走(这个解释有一定问题,但结论是对的,可自行思考),往 \(y\) 递归下去。如果存在一个 \(y\) 走完后先手必败,那么当前先手必胜。能走的边构成DAG,可以直接一遍递推完成,复杂度 \(O(n)\)

posted @ 2021-09-23 17:45  -敲键盘的猫-  阅读(40)  评论(0编辑  收藏  举报