图论中的树为一个无环的无向图。给定一棵树,每个节点有一盏指示灯和一个按钮。如果节点的按扭被按了,那么该节点的灯会从熄灭变为点亮(当按之前是熄灭的),或者从点亮到熄灭(当按之前是点亮的)。并且该节点的直接邻居也发生同样的变化。
开始的时候,所有的指示灯都是熄灭的。请编程计算最少要按多少次按钮,才能让所有节点的指示灯变为点亮状态。
高斯消元裸题
好吧如果出到100W就不能这么做了(虽然说这题才100)
正规的写树Dp
我们发现可以用两个01表示一个点的状态
f[x][0/1][0/1]表示x点有没有被点亮,x点有没有被按下的答案,那么显然f[x][0][1]是无用状态
可以发现如下转移
f[x][1][0]+f[v][1][1]->f[x][0][0]
f[x][0][0]+f[v][1][1]->f[x][1][0]