好题Islands

Orz yjc 吊打候选队

 

不好的思路是枚举森林的m块,这样DP显然会涉及n当做某一维,最多只能卷积优化一下

生成函数什么的n太大不用想

 

考虑m,k比较小,能不能把n变成一个系数,而不是维度

所以就是m的选择以及度数的情况,剩下的n接上去.

https://blog.csdn.net/qq_39972971/article/details/94048092

这个森林的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质因数分解,记录分子分母质因子的出现次数即可

 

posted @ 2019-07-05 19:21  *Miracle*  阅读(257)  评论(0编辑  收藏  举报