【题目描述】

农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 <= N < 200)。这些二叉树有如下性质:

每一个节点的度是0或2。度是这个节点的孩子的数目。

树的高度等于K(1 < K < 100)。高度是从根到最远的那个叶子所需要经过的结点数;叶子是指没有孩子的节点。

有多少不同的家谱结构?如果一个家谱的树结构不同于另一个的,那么这两个家谱就是不同的。输出可能的家谱树的个数除以9901的余数。

【格式】

PROGRAM NAME: nocows

INPUT FORMAT(file nocows.in)

第1行:两个空格分开的整数, N和K。

OUTPUT FORMAT(file nocows.out)

第1行:一个整数,表示可能的家谱树的个数除以9901的余数。

【分析】

区间DP,用f[i][j]表示高度为i,节点数为j时的方案数。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <cstdio>
 5 #include <queue>
 6 #include <algorithm>
 7 int f[100][200];
 8
 9 int main()
10 {
11     int k,n,j,i;
12     //文件操作
13     freopen("nocows.in", "r", stdin);
14     freopen("nocows.out", "w", stdout);
15     memset(f,0,sizeof(f));
16     scanf("%d%d",&n,&k);
17     for(j=1;j<=k;j++) f[j][1]=1;
18
19     for(j=1;j<=k;j++)//高度
20     for(i=3;i<=n;i+=2)//节点数一次加2个
21     for (int k=1;k<=i-2;k+=2)//注意这里要新建k变量避免重复
22     f[j][i]=(f[j][i]+f[j-1][k]*f[j-1][i-k-1])%9901;
23     printf("%d\n",(f[k][n]-f[k-1][n]+9901)%9901);
24     return 0;
25 }

转载于:https://www.cnblogs.com/hoskey/p/3798278.html

【USACO 2.3.2】奶牛家谱相关推荐

  1. [USACO Mar08] 游荡的奶牛

    [USACO Mar08] 游荡的奶牛 时间限制:1 s 内存限制:128 MB 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游 ...

  2. ACM 130. [USACO Mar08] 游荡的奶牛(dp+BFS)

    130. [USACO Mar08] 游荡的奶牛 ★☆   输入文件:ctravel.in   输出文件:ctravel.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们在被 ...

  3. [USACO2.3]奶牛家谱 Cow Pedigrees

    [USACO2.3]奶牛家谱 Cow Pedigrees 题目 题目链接(luogu) 思路 dp,开始随便写了个dfs结果得了33分.看标签发现是dp,然后发现dp确实可行.(一下方法应该不是最优的 ...

  4. USACO 2.3.2 Cow Pedigrees 奶牛家谱

    题目描述: 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些 ...

  5. 奶牛家谱(动态规划)

    题目描述: 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些 ...

  6. P1472 奶牛家谱 Cow Pedigrees

    太精妙,留着以后慢慢消化 https://www.luogu.org/problemnew/show/P1472 法一: 我们一层一层地来推,枚举层数,然后再枚举这一层选择的奶牛的个数(必须是偶数个的 ...

  7. BZOJ 1232 USACO 2008 Nov. 安慰奶牛Cheer

    [题解] 对于每一条边,我们通过它需要花费的代价是边权的两倍加上这条边两个端点的点权. 我们把每条边的边权设为上述的值,然后跑一边最小生成树,再把答案加上最小的点权就好了. 1 #include< ...

  8. 洛谷 P3052 USACO 摩天大楼里的奶牛Cows in a Skyscraper

    题目描述 A little known fact about Bessie and friends is that they lovestair climbing races. A better kn ...

  9. 【USACO题库】 动态规划 汇总(普及-/普及)

    数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...

最新文章

  1. 历史版本_DNF:历史版本十大经典地图,没经历过那个时代的人不会明白的
  2. Linux内核2.6的进程调度
  3. python输入一组数据、进行简单的统计_《利用Python进行数据分析》学习笔记——第二章(3)...
  4. wxWidgets:拖放样本
  5. mysql-增删改(DML)
  6. 策略模式、简单工厂结合
  7. 用offset调用文章
  8. tomcat6的项目能直接在tomcat7上用吗_极尽人性化的设计: 能“隐形”的笔记本电脑支架...
  9. opencv AKAZE 局部特征匹配算法
  10. 文件读、写、追加的区别 Python
  11. 自己配置外接屏幕和驱动,最终通过hdmi连接
  12. itools 苹果录屏大师 java_AirPlayer电脑版(itools苹果录屏大师)下载|AirPlayer电脑免费版...
  13. Android 测试技能树
  14. 软件密码模块安全要求
  15. 微信群二维码活码生成 微信活码
  16. 关于眼镜的一些知识收集
  17. CISC 和 RISC
  18. 查询局域网内在线电脑IP地址
  19. Input输入框如何禁止输入中文
  20. 数据结构—栈和队列经典面试题

热门文章

  1. mongodb固定集合(Capped Collections) | MongoDB 自动删除集合中过期的数据——TTL索引
  2. 浅谈GOT表与PLT表
  3. 转眼就是一生,转身就是一世
  4. 2bizbox自带的mysql版本_2BizBox免费ERP软件v3.1官方安装版
  5. Tomcat服务器Servlet入门笔记
  6. Spring-data-redis + Lettuce 如何使用 Pipeline
  7. lua Utils工具(持续更新)
  8. 数据结构专题——Treap
  9. CIFS(通用网络文件系统)
  10. 电信猫拨号再加路由器