题目链接
题意
一棵有n个节点的树,每个点有一个点权,问在这棵树上所有的$frac{n(n-1)}{2}$条链颜色种类的和是多少。
思路
对于每种颜色计算其贡献,我们可以先算出每种颜色在多少条链中不出现,用总数减一下就可以得到在多少条链中出现,dfs序处理一下,遍历到一个点的时候我只考虑这个点与其儿子构成的连同块,在这些块里面都不出现这个颜色。
dfs
1 |
void (int u, int f) |
1 |
int main() |
一棵有n个节点的树,每个点有一个点权,问在这棵树上所有的$frac{n(n-1)}{2}$条链颜色种类的和是多少。
对于每种颜色计算其贡献,我们可以先算出每种颜色在多少条链中不出现,用总数减一下就可以得到在多少条链中出现,dfs序处理一下,遍历到一个点的时候我只考虑这个点与其儿子构成的连同块,在这些块里面都不出现这个颜色。
1 |
void (int u, int f) |
1 |
int main() |
近期评论