D. Edge Weight Assignment 题意 给出一个n个节点的树,现在要为边赋权值,使得任意两个叶子节点之间的路径权值异或和为0,问最多,最少有多少个不同的权值. 题解 最大值: 两个叶子节点x,y,如果他们的父亲都是z,那么[x,z],[y,z]的权值必须相同. 其他边可以保证任意两个边的权值都不相同. 最小值: 如果任意两个叶子节点的路径长度为偶数,给所有边赋一个正值就可以. 如果存在奇数:最少需要三个值. 代码 #include<bits/stdc++.h> #define…