我有一棵树,我想为每个节点black or white
着色。如果是For every node N there exist at least One neighbor with the same color as of N
我的方法:
让我们构造一个dp [2] [N],其中0,1表示黑白
ways = (dp[0][i1]+dp[1][i1])*(dp[0][i2]+dp[1][i2)*.....i upto All Children of N
dp[0][N] = (ways-Number of ways when all the children are 1)
dp[1][N] = (ways-Number of ways when all the children are 0)
但我的方法并没有给我正确的答案?请帮助我,我错过了什么?
答案 0 :(得分:0)
对于每个节点u
,让C(u)
为以u
为根的子树的有效着色数,让A(u)
为所有颜色的着色次数u
的适当后代具有相同颜色的邻居(“几乎有效”)。重现是
C(u) = A(u) - 2 product_{v is a child of u} (C(v)/2)
A(u) = 2 product_{v is a child of u} (C(v)/2 + A(v)/2)
A(u)
的逻辑是(1)根有两种颜色(2)每个与v
不同的儿童u
必须有效(3)每个孩子{与v
相同的{1}}颜色必须几乎有效。 u
的逻辑是,所有孩子与父母不同的可能的颜色几乎都是有效的。