AGC010F

AGC010F

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

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

问先手后手谁 win 谁 lose

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

\(n\le 3000\)

Solution

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

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

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

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

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

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

posted @ 2020-09-22 15:26  Soulist  阅读(70)  评论(0编辑  收藏  举报