原题链接
1 题目
1.1 题目所需求出内容
对于本题,最终要求:一个最小值
1.2 题目背景、允许、禁止与限制
背景:
有一棵树,树上的节点只会为黑色 (111) 或者白色 (0)(0)(0)
允许:
有两个操作
* 操作1:将节点 uuu 到根节点路径上的所有点颜色反转
* 操作2:将以 uuu 为根的子树中所有节点(包括 uuu)的颜色全部反转
要求操作过后最终使得所有点为黑色时的最小操作次数
1.3 题目数据范围与猜测
1≤n≤2×105⟶O(n log n)1 \le n \le 2\times 10^5 \longrightarrow O(n~log~n)1≤n≤2×105⟶O(n log n)
1.4 一句话概括题意
有一棵树,树上每个节点有颜色
求将树通过题目给出操作全部染为黑色的最小操作次数
2 题目破题推导
2.1 第一步:观察影响
发现当一个节点使用操作2时,只会对底下所有子节点产生影响
但是当一个节点使用操作1时,会对上面的所有点产生影响,其中包括了直接父节点
2.2 第二步:奇偶性分析
我们先只考虑一个节点重复使用操作1对于其父节点的影响:
若使用操作1次数为奇数(异或和为 111),则其父节点将会被翻转,否则将不会
接下来就要就着简单思路讨论了
3 模型匹配(代码和模型匹配中的描述略有不同)
4 最终代码(禁止抄袭,仅用于参考)