CF1824C LuoTianyi and XOR-Tree
时隔一年,开玩笑的抄题解终于变成了纸面上的代码。
设 \(f_{i, j}\) 为 \(i\) 子树中的叶子到根的异或全部为 \(j\) 的最少操作数。
我们发现 \(f_{i, j}\) 对于每个 \(j\) 的差都不超过 \(1\),因为总能通过一次操作互相转化。
先考虑这个状态怎么做,本质上是很好转移的,看最后全部操作需要多少次操作。
由于差不超过 \(1\),我们用 \(set\) 把所有答案的异或值记录下来启发式合并,每次向上贪心取最多的合并即可。

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号