4 条题解
-
2
注意到,将所有 为 的信息异或起来可以得到所有深度为 的结点的权值的异或和 ,因为在满二叉树中,对于某个满足 的结点 ,满足 的结点 的数量为奇数,而对于某个满足 的结点 ,满足 的结点 的数量为偶数。证明显然。
于是我们可以得到,对于所有满足 的整数 ,深度为 的结点的权值的异或和,这恰恰是根结点的信息。枚举一下,找到恰好能匹配上的点即为满足条件的根结点。
再求根结点的权值。我们可以先求出所有点的权值的异或和,再异或上根结点的所有信息,得到根结点的权值。
再次注意到,如果两个点的距离为奇数,那么将两个点中所有满足 为奇数的信息异或起来就能得到所有点的权值的异或和。如果两个点的距离为偶数,则异或起来会得到 。
那我们任选一个点,枚举剩下的点,按照上述方法求出异或和。注意如果得到的全是 ,那么其实所有点的权值的异或和就是 。
于是我们就可以求出根节点的编号和根结点的权值了。
信息
- ID
- 31
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 243
- 已通过
- 18
- 上传者