[APC001F]XOR Tree
总结:
一道非常巧妙的题目,考虑将边权转化成点权,也就是给每一个点赋一个点权,将操作转化成选择两个点,同时异或上一个值,最后全部变成 \(0\) 的最小操作次数。
这里非常巧妙,我们将每一个点的点权设置为与其相邻的边权异或和。
于是我们考虑证明,最后点权 \(=0\) 等价于边权 \(=0\) 。
我们考虑剥叶子的过程,也就是说,一开始所有叶子的权值就等于与其相连的边的权值,也就是说,这个时候点权 \(=0\) 是等价于边权 \(=0\) 的,然后我们将所有的边剥掉,于是剩下的我们考虑归纳,这样就证明了上面的东西。
于是我们一开始将所有点权相同的两个异或,这样的话一定不劣。然后考虑所有剩下的数 \(\leq 15\),并且每个数最多只会出现一次,我们暴力状压之后记忆化搜索一下,时间复杂度 \(\Theta(2^{16} \times 16^2)\) 可以通过。

浙公网安备 33010602011771号