咋提宣讲
不妨假设先手放在 \(1\) 号点,最后对每个点都做一遍即可。
\(N = 2\) 的时候先手必胜当且仅当 \(A_1 > A_2\)。
再难一点,\(1\) 的度数为 \(N - 1\) 时,考虑所有儿子的 \(A_i\) 的 \(\min\) 为 \(minn\),如果 \(minn < A_1\),那么将棋子移向这个儿子,后手只能移动回 \(1\) 号点,如此往复,先手必胜;否则先手干啥都没用,必败。
考虑一般的情况,我们先递归求出每个子树先手必胜还是后手必胜。
如果一个子树先手必胜,那么一定不会把棋子移过去。
如果先手把棋子移到一个后手必胜的子树,那么后手一定会把棋子移回根,和前面菊花的情况类似:考虑所有后手必胜的子树的 \(A_i\) 的 \(\min\) 为 \(minn\),先手必胜当且仅当 \(A_1 > minn\)。
考虑每条边被覆盖的次数 \(d_i\),答案的上界是 \(\sum \min(d_i, 2)\),事实上可以取到。
我们不妨加强条件为给每次散步定向,使得每条边两种方向被覆盖次数不超过 \(1\)。
考虑对于每次散步的两个节点连一条无向边,得到一张新图,假如说新图存在欧拉回路,那么我们跑出欧拉回路并以此定向,此时每条树边两种方向被覆盖的次数相同:每次覆盖树边 \((u, v)\) 一定是从 \(u\) 这一侧某个节点散步到 \(v\) 这一侧某个节点,或者反之,因为是回路,所以得证。
一般的情况我们考虑加一些边使得新图每个点度数为偶数,考虑对原树 dfs,考虑完 \(x\) 子树里的边,如果 \(x\) 的度数为奇数,那么在新图上加入 \(x\) 和父亲的边,不难发现能保证所有点度数都为偶数,同时因为加入的都是树边,所以保证了每条树边两种方向被覆盖次数不超过 \(1\)。
首先不存在 \((l_i,r_i)=(l_j,r_j)\),否则显然可以交换 \(x_i,x_j\),那么我们可以把 \((l_i,r_i)\) 按 \(x_i\) 排序,因此可以假设 \(x=[1,2,\dots,n]\),最后答案乘 \(n!\)。
然后刻画匹配唯一的条件,即求最大匹配的增广图上无环,在本题中就是 \(i\) 向 \([l_i,r_i]\setminus\{i\}\) 连边后无环。
无环说明该图是 DAG,主旋律容斥,每次加入一层零度点,那么其他点对应的区间不能跨过这些零度点,这样就划分出了相邻两个零度点之间的子问题。
形式化的:
\( f_n=\sum_{m=1}^n\sum_{1\leq v_1<v_2<\cdots<v_m\leq n} (-1)^{m+1}v_1\left(\prod_{i=2}^m(v_i-v_{i-1})^2\right)(n-v_m+1)f_{v_1-1}\left(\prod_{i=2}^m f_{v_i-v_{i-1}-1}\right)f_{n-v_m} \)。
设一个辅助数组 \(g\) 表示考虑前 \(i\) 个点,最后一个关键点在 \(i\) 即可 \(\mathcal{O}(n^2)\)。

浙公网安备 33010602011771号