From 643cda2413e02ed390de582d4dc11805f4158e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 19 Jan 2024 08:18:45 +0800 Subject: [PATCH] 'commit' --- TangDou/Topic/HuanGenDp/SubTree.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/TangDou/Topic/HuanGenDp/SubTree.cpp b/TangDou/Topic/HuanGenDp/SubTree.cpp index 97544cf..dadfb9c 100644 --- a/TangDou/Topic/HuanGenDp/SubTree.cpp +++ b/TangDou/Topic/HuanGenDp/SubTree.cpp @@ -26,9 +26,12 @@ void dfs1(int u, int fa) { int v = e[i]; if (v == fa) continue; dfs1(v, u); - f[u] = f[u] * (f[v] + 1) % mod; + f[u] = f[u] * (f[v] + 1) % mod; // 全白也是一种方案,对于v子树而言,它并不是只能提供以v染成黑色的所有方案,还有一种:v没有染成黑色的方案数。 + // 而此时,由于v没有染成黑色,所以,v子树就没有进去染色,也就是整个v子树全都是白色,这算是一种特殊的染色方案,也就是啥都不染。 + // 所以 f[v]+1 就是v子树的所有贡献值,而f[u]需要把自己所有儿子的共献值累乘起来才是自己的贡献值。 son.push_back(v); // 将子节点加入集合,方便之后操作 } + int t1 = 1; // 前缀积取模后的值 int t2 = 1; // 后缀积取模后的值