题目大意:对于一个不完全二分图,根节点为1,叶节点值为0或1,非叶节点包含一个操作(and,or,xor,not),求改变各个叶节点的值时(即0改为1,1改为0),根节点的值是多少
解法:遍历图求各节点的值,改变每个叶节点时,向图根节点遍历,求根节点值即可
有两个需要剪枝的地方,一,当改变到当前节点是该节点值已经不在改变,则结束图的向上递归
二,维护每个节点改变时,根节点的值,当再次遍历次节点时,可直接得到答案,结束递归
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include<string.h>
7 #include
8 #include
9 #include<set>
10 #include