题解:CF1776M Parmigiana With Seafood
致谢:
本文主要思路参考了这篇题解,并补充了最优结构中必含 \(n\) 的证明,在此表示感谢。
人生首黑!写篇题解祭一下。
超绝无敌螺旋升天找规律博弈题
显然答案具有单调性,考虑二分答案 \(mid\),对于 \(\ge mid\) 的点我们把它染成白色,\(\lt mid\) 的点我们把它染成黑色。
于是问题变成能不能保证先手可以取到一个白点。
考虑先后手的获胜条件是什么。
如果 \(n \equiv 0 \pmod 2\),那么先手必胜,因为一直取点后一定会留下一个白色节点,答案即为 \(n\)。
接下来考虑 \(n \equiv 1 \pmod 2\) 的情况。先手操作时只要出现白色叶子节点就直接胜利,所以后手必须严防死守,不能让任何一个白点变成叶子。
考虑由一些白点构成的虚树。如果虚树里某个叶子是白的,我们就随便加一条以它为端点的边,这样一旦拆掉虚树上任意一个点,就会有一个白点变成叶子,先手就能赢。进一步,如果这个虚树的大小 \(sz_{tr}\) 为偶数,那么后手操作之后,先手必定能选到一个白色叶子,直接获胜。所以先手能不能赢,就看存不存在这样的虚树。
充分动用人类智慧,我们发现只有下面两种情况会搞出这种虚树:
- 存在两个点 \((u,v)\),它们之间的距离是奇数(即 \(dis(u,v) \bmod2 = 1\))。此时答案就是 \(\min(u,v)\)。
- 存在三个点 \((u,v,w)\),它们的中心是 \(x\),并且 \(u,v,w\) 到 \(x\) 的距离都是偶数。此时答案就是 \(\min(u,v,w)\)。
所有情况就这么两种,然后我们惊奇地发现根本不用二分答案,直接判断上面两种情况就能得到最优答案。
再充分动用人类智慧就又会发现这两种情况里 \((u,v)\) 或 \((u,v,w)\) 中必有一个为 \(n\),否则可以证明一定不是最优(证明见下文)。于是以 \(n\) 为根跑一遍 dfs 就行了,复杂度 \(O(n)\)。
证明:
证明写的很烂请见谅
考虑反证法。
假设存在不含 \(n\) 的距离为奇数的点对 \((x,y)\) 且 \(\min(x,y)\) 更大。则 \((n,x),(n,y)\) 距离均为偶(否则含 \(n\) 的更优),但 \(dis(x,y)\) 为奇,与奇偶性矛盾。
假设存在不含 \(n\) 的三点组 \((x,y,z)\) 到某中心 \(c\) 距离均为偶且 \(\min(x,y,z)\) 更大。则所有两两点对距离均为偶(否则含 \(n\) 的奇数点对出现)。若 \(dis(n,c)\) 为偶,则 \(n\) 到 \(x,y,z\) 均为偶,\((n,x,y)\) 即为含 \(n\) 的三点组;若为奇,则 \(n\) 到各点均为奇,\((n,x)\) 为奇数点对。均矛盾。
故最优结构必含 \(n\),得证。

浙公网安备 33010602011771号