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))