2018.10.26 NOIP训练 数数树(换根dp)

时间:2023-03-09 05:07:11
2018.10.26 NOIP训练 数数树(换根dp)

传送门

换根dpdpdp傻逼题好像不好码啊。

考虑直接把每一个二进制位拆开处理。

先dfsdfsdfs出每个点到1的异或距离。

然后分类讨论一波:

  1. 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为111的,如果当前二进制位到这个点距离为111的就是到根节点距离为000的。
  2. 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为000的,如果当前二进制位到这个点距离为111的就是到根节点距离为111的。

然后就统计完了。

代码