csuoj 1351: Tree Counting
这是一个动态规划的题;
当初想到要用dp,但是一直想不到状态转移的方程;
题解上的原话:
动态规划,设 g[i]表示总结点数为 i 的方案种数,另设 f[i][j]表示各个孩子的总结点数为
i,孩子的个数为 j 的方案数,那么有 g[i+1]=f[i][1]+f[i][2]+...+f[i][k],相当于添加一个根节
点之后变成完整的树,同时要把有 1 个孩子,2个孩子, ……,k 个孩子的情况都考虑进去。
对于 f[i][j]的求解可以用类似背包的方法去做,在求解的时候也会用到 g[1], g[2], ..., g[i]
的值,根据前面的那个 g[i+1]的表达式来看,这些 g[]已经在前面算出来了。
代码:
#include<cstdio> #include<cstring> #include<algorithm> #define maxn 205 #define mod 1000000007 using namespace std;long long dp[maxn],f[maxn][22];int main() {int t,n,k;scanf("%d",&t);while(t--){scanf("%d%d",&n,&k);memset(dp,0,sizeof dp);memset(f,0,sizeof f);f[0][0]=1;dp[1]=1;for(int i=1;i<n;i++){for(int j=1;j<=k;j++)for(int v=1;i-v>=j-1;v++)f[i][j]=(f[i][j]+dp[v]*f[i-v][j-1])%mod;for(int j=1;j<=k;j++)dp[i+1]=(dp[i+1]+f[i][j])%mod;}printf("%lld\n",dp[n]);}return 0; }
View Code
转载于:https://www.cnblogs.com/yours1103/p/3470240.html
csuoj 1351: Tree Counting相关推荐
- c语言常用的条件编译,C语言条件编译
使用与平台有关的C语言函数,可能会使得程序不具有可移植性.比如Socket编程.多线程编程等是与平台有关的. 若想将程序做成平台无关的就需要用到与平台相关的条件编译. 编译器 GCC #ifdef _ ...
- 牛客网【每日一题】4月13号 Accumulation Degree
文章目录 题目描述 样例分析: 题意: 题解: 代码: 本题目传送 题目树学是这个题的简易版,也涉及换根问题,可以先看看这个 树学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32 ...
- 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结
文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...
- [论文总结] 深度学习在农业领域应用论文笔记7
文章目录 1. Applications of deep-learning approaches in horticultural research: a review,2020,Horticultu ...
- POJ 3585 Accumulation Degree 树形dp
题目链接 Accumulation Degree Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5388 Accepte ...
- Poj·Accumulation Degree
初见安~这里是传送门:Poj P3585 Description Trees are an important component of the natural landscape because o ...
- pat1004. Counting Leaves (30)
1004. Counting Leaves (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A fam ...
- Decision Tree
#①Aggregation Model 回顾上一篇文章讲到的聚合模型,三个臭皮匠顶一个诸葛亮.于是出现了blending,bagging,boost,stacking.blending有uniform ...
- LeetCode Counting Bits(动态规划)
问题:给出数字n,求0-n这些数的1的位数. 思路:方法一使用x&(x-1)统计数字1的位数. 方法二[0,1) [2,3)表示形式为[10,11) [4,8)表示形式为[100,101, 1 ...
最新文章
- Jupyter Notebook中显示图像和数学公式
- IJCAI主席杨强:联邦学习的最新发展及应用
- SimpleDateFormat线程不安全
- 分布式加载数据训练神经网络
- 网络营销之下的泡泡玛特盲盒广受年轻用户群体的喜爱与关注
- redis中的hash
- java基础(网络编程---IP、端口、URL)
- WinUI 3 Preview 3 发布了,再一次试试它的性能
- 算法(5)-leetcode-explore-learn-数据结构-字符串
- sql IDENTITY(函数)
- php获取多个参数值,php-获取多个过滤器值参数
- 判断两个ListInteger是否包含同样的值,不考虑位置关系
- 以太坊源码 交易池(一) 基本流程解析
- linux系统的电脑要不要买,是否有必要为Linux购买一台相对较高配置的电脑?
- 在线报刊html代码,数字报纸HTML版本
- Vue中的自定义指令
- Joda-Time 简介
- android 录像 视频大小,Android相机 – 录制视频时预览放大
- docker安装报错:docker-ce conflicts with 2:docker-1.13.1-208.git7d71120.el7_9.x86_64
- JAVA商城源码-B2B2C商城系统-独立部署,一套源码终身可用
热门文章
- Spring 注解方式实现 事务管理
- 在页面中给flash加链接
- HTML与XHTML区别
- 大工18秋计算机文化基础在线测试2,大工18秋《计算机文化基础》在线测试2【答案】...
- sh脚本和bash脚本_在脚本中使用Bash陷阱
- 数字化转型 数字分析_数字化转型背后的公司领先于开放的领导者
- 使用devops的团队_DevOps与兼职社区团队兼容吗?
- arduino 3d打印机_Firefox OS流视频,使用Arduino销售3D打印机等
- linux急救模式_抢救Linux! Windows XP支持今天终止
- 知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?