AGC010F

AGC010F

给定一棵树,大小为 (n),点 (i) 有点权 (a_i),初始在某个点上有一个石头。

每次可以选择石头进行移动,然后给当前点的点权 (-1),如果点权为 (-1) 那么就 lose。

问先手后手谁 win 谁 lose

对每个点计算一次以其为起点谁 win 谁 loes,单次复杂度要求 (mathcal O(n))

(nle 3000)

Solution

两个点的时候的胜负非常好判断。

(A_i> A_j),此时先手必胜。

考虑菊花图,先手必胜一定是 (A_i>min(A_j))

考虑子树如果先手必胜,那么后手一定会跑出来。

如果后手必胜,那么先手也出不去。

所以条件是 (A_i>min(A_j[j~ extrm{will~lose}]))

原文地址:https://www.cnblogs.com/Soulist/p/13712465.html