原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1351

  DP题,毫无疑问。由于动态规划题目做得少、不熟悉,刚开始自己用f[i]表示用 i 个节点的方案数,然后就需要逐个子节点进行深搜,非常暴力,毫无疑问TLE。在此情况下,直觉告诉我需要增加一维空间来降低时间复杂度。此时,设dp[i][j]表示用 i 个节点,孩子节点数恰好为 j 的方案数,那么,状态转移方程为:

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std; #define N 205
#define M 25
#define MOD 1000000007 typedef long long LL; LL dp[N][M]; int main()
{
int t, n, k;
cin >> t;
while(t--)
{
cin >> n >> k;
memset(dp, , sizeof dp);
dp[][] = ; dp[][] = ;
for(int i = ; i <= n; i++)
{
dp[i][] = dp[i-][];
for(int j = ; j <= k; j++)
{
if(j >= i) break;
for(int p = ; p < i-; p++)
{
dp[i][j] = (dp[i][j] + dp[i-p][j-] * dp[p][]) % MOD;
}
}
for(int j = ; j <= k; j++)
dp[i][] = (dp[i][] + dp[i][j]) % MOD;
}
cout << dp[n][] << endl;
}
return ;
}

最新文章

  1. MongoDB基础
  2. java类加载器及其委托机制
  3. 华清远见成为ARM大学计划正式合作伙伴
  4. [亿能测试_www.gdtesting.com]测试技术资料网盘共享
  5. C++客户端程序(socket)
  6. Eclipse反编译插件: Jodeclipse与JadClipse
  7. BAT等互联网公司薪资分享
  8. Guava API学习之Ordering犀利的比较器 编辑
  9. 2014.8.15模拟赛【公主的工作】&amp;&amp;bzoj1046[HAOI2007]上升序列
  10. 学习Java这几个快捷键你得知道(不断更新中)
  11. C# - ref
  12. node.js 中模块的循环调用问题详解
  13. C程序练习
  14. 下载Android kernel
  15. [Vue warn]: Do not use built-in or reserved HTML elements as component id: header
  16. 关于flexjson将json转为javabean的使用
  17. CentOS下挂载数据盘
  18. 汽车收费 C++ PTA
  19. QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
  20. Windows &quot;计划任务&quot;功能设置闹钟~

热门文章

  1. Java试题二
  2. Codeforces 585E. Present for Vitalik the Philatelist(容斥)
  3. 解题:BZOJ 4808 马
  4. 框架----Django之Form组件
  5. winform布局 FlowLayoutPanel的控件
  6. Python高级语法总结
  7. Codeforces 480.E Parking Lot
  8. ICPC 2018 南京网络赛 J Magical Girl Haze(多层图最短路)
  9. LINUX安全加固操作
  10. centos 7 pdo