1001 E1
限时每日一题day1。出师不利,脑袋糊涂了,没想出来这道题。
看完题解才发现这道题无比 \(eazy\)。。。
很明显每个人要删的点 \(u\) 必须满足这个性质:
\[max_{v \in T - subtree(u)}w[v] > w[u]
\]
那需要找哪个 \(u\) 以确保一定能赢呢?应该找满足上式且 \(w[u]\) 最大的 \(u\)。因为之后后者只能选权值 \(w[v]>w[u]\) 的点 \(v\),而 \(v\) 一定不会满足上式,因此后手删掉 \(v\) 后,先手必定无点可删,先手必胜。
实现只需要将子树用 \(dfn\) 序映射成区间,再用数据结构维护区间最大值即可。
总结一下,这道题只需要敢猜 + 证明猜测合理性就能做,只能说现在的自己还是太菜了qwq。
code