Orz yjc 吊打候选队
不好的思路是枚举森林的m块,这样DP显然会涉及n当做某一维,最多只能卷积优化一下
生成函数什么的n太大不用想
考虑m,k比较小,能不能把n变成一个系数,而不是维度
所以就是m的选择以及度数的情况,剩下的n接上去.
这个森林的prufer序列,也可以用n+1作为大根来连接m个儿子(这样比较自然)
本质显然是一样的
转化为序列问题
枚举总共的度数是i的话
给m个颜色分配i个盒子,每个颜色出现次数<=k
f[i][j],转移如果枚举第i种颜色用了多少个以及占用哪些盒子,O((mk)^2)
枚举最后一个盒子放哪种颜色?>k不合法?恰好对应唯一的=(k+1)的情况!直接减掉!
类似HEOI2014平衡以及YALI集训考试题
至于组合数,**出题人mod不一定是质数
C(j-1,k)可以预处理
而C(n,m)m又比较小项数不多,对mod质因数分解,记录分子分母质因子的出现次数即可