题目大意是:

给定一个n,k,表示树上共有n个节点,每个节点最多有k个叶子,问一共多少种摆法,答案对1000000007取模

这里定义一个dp[i]表示 i 个节点对应有多少种方法

f[i][j] 表示一个除去顶点的树中,这个顶点延伸出 j 个子树 , 这j个子树中共有i 个点

那么只要在f[i][j]上添加一个顶点就得到了 dp[i]

所以dp[i+1] = f[i][0] + f[i][1] ......+f[i][k]

f[i][j] = ∑(f[i-k][j-1]*dp[k]) k<=i;

 #include <cstdio>
#include <cstring>
#include <iostream>
#define maxn 205
const int mod = ;
using namespace std; long long dp[maxn],f[maxn][]; int main()
{
// freopen("a.in" , "r" , stdin);
int T,n,k;
scanf("%d",&T);
while(T--)
{
scanf("%d%d" , &n , &k);
memset(f , , sizeof(f));
memset(dp , , sizeof(dp));
f[][] = ;
dp[] = ;
for(int i= ; i<n ; i++){
for(int j=k ; j>= ; j--){
for(int t= ; t<=i ; t++){
f[i][j] += (f[i-t][j-]*dp[t])%mod;
f[i][j]%=mod;
}
// cout<<"i: "<<i<<" j: "<<j<<" "<<f[i][j]<<endl;;
} for(int j= ; j<=k ; j++){
dp[i+] += f[i][j];
dp[i+]%=mod;
}
// cout<<"i: "<<i<<" "<<dp[i]<<endl;
}
printf("%lld\n" , dp[n]);
}
return ;
}

最新文章

  1. [原]在GeoServer中为OpenStreetMap数据设置OSM样式
  2. day3
  3. 让Team Foundation Server/TFS自动记住用户名密码解决方案
  4. 关于oracle修复控制文件与数据文件不一致的问题----
  5. 【C语言】05-printf和scanf函数
  6. Java设计模式之适配器设计模式
  7. android之SeekBar控件用法
  8. MVC 局部加载页面的实例
  9. 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
  10. HTML5入门3---视频播放器
  11. Hadoop MapReduce概念学习系列之mr程序详谈(二十三)
  12. vim file save as
  13. Android中ListView下拉刷新的实现
  14. 2017-2018-1 20155205 实现mypwd
  15. python 小练习 5
  16. 升级pip10.0.0后出现ModuleNotFoundError: No module named 'pip'的问题
  17. 关于dc.add(Restrictions.like(&quot;XXX&quot;, &quot;%&quot;+XXX+&quot;%&quot;))查询不到结果,但数据库中存在
  18. requests库的文档--快速上手
  19. Linux crontab下关于使用date命令和sudo命令的坑
  20. CDN的基本原理和基础架构

热门文章

  1. 【weiphp】安装中报错
  2. NetCore Netty 框架 BT.Netty.RPC 系列随讲 —(前序) REST API 与 RPC 经典网络基础服务架构
  3. DP Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
  4. RabbitMQ二:AMQP协议
  5. 微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
  6. poj1787 Charlie&#39;s Change
  7. leetcode221 Maximal Square
  8. Matlab2014的下载和安装激活过程
  9. 多路开关模式的switch语句
  10. re.S解析