P7443 「EZEC-7」加边 题解

· · 题解

迟到了的出题人题解。

部分分如下:

考虑必胜点和必败点的思想。当一个点指向的所有点都是必胜点,这个点是必败点。否则是必胜点。叶子节点是必败点。

先不考虑加边,处理出每个点是必胜点还是必败点。接着处理出每个点的改变会不会影响到根的改变。

先考虑加边形成环的情况,是不会使得必败变成必胜的。只会使局面变成平局或不变。证明。

不形成环的情况,就是 v 不在 u 到根的路径上。考虑一个 u 改变会影响根。对于这个点是必胜点,肯定是无法改变的。对于这个点是必败点,只要把它连到一个必败点上去,它就能改变。要计算出最小的不在这个点到根路径上的必败点。

接下来的问题是要计算出最小的不在这个点到根路径上的必败点。

正解复杂度线性。貌似被堆的 log 过去了,但是我不想卡了。

代码细节比较多,但是思路算是清晰的。写得比较丑,就不给代码了。