31 October
2024-09-06 00:01:13
https://www.cnblogs.com/RabbitHu/p/51nod1353.html
树形 DP 求所有联通块 \(\ge K\) 的方案数.
切断:\(\forall i\in\left[1, s_u\right]\), \(\displaystyle f(u, i) =\sum_{j=1}^{s_v} f(v, j) =f(v, 0)\).
不切断:\(\forall i\in\left[1, s_u\right]\), \(\displaystyle \sum_{j=1}^{s_v}f(u, i+j) = f(u, i) f(v, j)\).
void dfs(int u, int pre) {
dp[u][1]=sz[u]=1;
for (int k=head[u], v; k; k=nex[k]) if (v=to[k]!=pre) {
dfs(v, u);
for (int i=sz[u]; i; --i) {
for (int j=1; j<=sz[v]; ++j) dp[u][i+j] = (dp[u][i+j] + dp[u][i]*dp[v][j])%mod;
dp[u][i]=dp[u][i]*dp[v][0]%mod;
}
sz[u]+=sz[v];
}
for (int i=K; i<=sz[u]; ++i) dp[u][0]=(dp[u][0]+dp[u][i])%mod;
}
dfs(1, 0);
for (int i=K; i<=sz[i]; ++i) ans=(ans+dp[1][i])%mod;
最新文章
- JVM内存模型、指令重排、内存屏障概念解析
- 关于URL、Web的一些概念
- LinkedHashMap实现LRU算法
- Android 坐标与宽高研究getLeft() getTop() getRight()和getBottom()
- 关于【bootstrap modal 模态框弹出瞬间消失的问题】
- SOD 精选细节--常用工具
- WordPress主题制作教程4:调用指定页面内容
- Xcode升级后插件失效的原理与修复办法
- Ambiguous mapping found. Cannot map &#39;xxxxController&#39; bean method
- VMWare虚拟机USB连接问题
- Immediate Decodability
- 关于Delphi中TRttiContext.FindType失效的问题
- Javascript基本语句
- Centos-7.4_安装_Redis_4.0.8
- Qt5全局热键第三方库qxtglobalshortcut5使用
- ubuntu svn服务本地搭建使用
- 自学Linux Shell5.2-shell内建命令history alias
- HDU 3746 Cyclic Nacklace (KMP求循环节问题)
- python学习 day011打卡 迭代器
- docker node项目 连接mongodb
热门文章
- IDEA Maven project: &#39;xxx/pom.xml&#39; already exists in VFS
- eclipse中常用的快捷键【开发常用到的】
- [2019杭电多校第四场][hdu6621]K-th Closest Distance(主席树)
- pip源地址
- Angular.js 使用获取验证码按钮实现-倒计时
- 信号量Semaphore实现原理
- win7安装scrapy
- netcore项目使用swagger开发
- openstack stein部署手册 7. nova-compute
- ulimit 管理系统资源