牛客练习赛-树(染色dp)
(以后刷题还是多总结,排版就丑一点了)
题目描述
链接:https://ac.nowcoder.com/acm/contest/2/B
来源:牛客网
shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。
输入描述:
第一行两个整数n,k代表点数和颜色数;
接下来n-1行,每行两个整数x,y表示x与y之间存在一条边;
输出描述:
输出一个整数表示方案数(mod 1e9+7)。
示例1
输入
复制
4 3
1 2
2 3
2 4
输出
复制
39
备注:
对于30%的数据,n≤10, k≤3;
对于100%的数据,n,k≤300。
题解
懒得排版了,以后题解就写在注释里
#include<bits/stdc++.h>
/*
状态转移方程f[i][j]=(f[i-1][j-1]*(m-j+1)%mod+f[i-1][j])%mod,f[i][j]表示节点i的
节点中如果有j种颜色的话
和力扣的监控那题一样
*/
using namespace std;
#