传送门
换根dpdpdp傻逼题好像不好码啊。
考虑直接把每一个二进制位拆开处理。
先dfsdfsdfs出每个点到1的异或距离。
然后分类讨论一波:
- 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为111的,如果当前二进制位到这个点距离为111的就是到根节点距离为000的。
- 如果一个点如果当前二进制位到根节点异或距离为1,那么对于当前二进制位到这个点距离为000的就是到根节点距离为000的,如果当前二进制位到这个点距离为111的就是到根节点距离为111的。
然后就统计完了。
代码