AT2675 [AGC018F] Two Trees
首先我们看到1或-1,那么就是限制差距在1以内,然后我们可以想到构造一些东西来满足这种东西,然后我们经常利用的就是欧拉回路。
首先这是两个树,然后我们可以根据儿子个数来判断当前点的奇偶性,如果相同编号在两个树上奇偶性不同,那么必然无解,否则我们一定能够构造一组解。具体方法就是让偶点赋值为0,然后考虑两个树上相同编号奇点连边,这时候就满足所有点的度数都是偶数的限制了,但是对于根需要处理一下,建一个虚拟根连接两个树根,那么这样跑出来欧拉回路,根据方向来确定赋值1或-1。
我们发现对于任意一个点的子树总的只会是进一条边或出去一条边,因为从父亲只进来或出去一条边。这样我们就满足了题目要求的限制。