AT_apc001_f XOR Tree
首先树上差分,将链上问题转化为两点异或。
发现不为 \(0\) 的相同值肯定成对异或最优,这样就变成了值不超过 \(15\) 且互不相同的数,每次要你选择两个数,异或上一个值。
然后如果 \(k\) 个异或为 \(0\) 的元素可以直接消成 \(0\)(少一次操作),否则直接做就是 \(k\) 次。
当然,你可以将一个集合分成两个集合做这个操作,所以状压 DP 就做完了。
首先树上差分,将链上问题转化为两点异或。
发现不为 \(0\) 的相同值肯定成对异或最优,这样就变成了值不超过 \(15\) 且互不相同的数,每次要你选择两个数,异或上一个值。
然后如果 \(k\) 个异或为 \(0\) 的元素可以直接消成 \(0\)(少一次操作),否则直接做就是 \(k\) 次。
当然,你可以将一个集合分成两个集合做这个操作,所以状压 DP 就做完了。