洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
这道题我觉得是个不错的题;
根据题意可以较清晰的发现ans只和n和k有关;(因为输入的只有这两个数啊~);
那么设f[i][j]表示前i层用了j个节点的方案数,g[i][j]表示深度小于等于i并且用了j个节点的方案数总和;
对于一颗树,可以把它分成3部分:根节点,左字树,右子树;
对于一颗深度为i的树,左子树和右子树至少有一个达到了深度i-1;
所以转移方程是:f[i][j]+=f[i-1][k]*g[i-2][j-k-1]+f[i-1][j-k-1]*g[i-2][k]+f[i-1][k]*f[i-1][j-k-1];
g[i][j]+=g[i-1][j]+f[i-1][j];
另外一定要注意取模的细节!!!
#include <bits/stdc++.h>
#define p 9901
using namespace std;
int n,m;
int f[][],g[][];
int main()
{
cin>>n>>m;
f[][]=;
for(register int i=;i<=m;i++){
for(register int j=;j<=n;j+=){
for(register int k=;k<=j--k;k+=){
int tmp=;
if(k==j--k) tmp=;
f[i][j]+=tmp*((f[i-][j-k-]*g[i-][k])%p+(f[i-][k]*g[i-][j-k-])%p+(f[i-][k]*f[i-][j-k-])%p);
f[i][j]%=p;
}
}
for(register int j=;j<=n;j++){
g[i-][j]=(g[i-][j]+g[i-][j]+f[i-][j])%p;
g[i-][j]%=p;
}
}
cout<<f[m][n]%p<<endl;
}
洛谷 P1472 奶牛家谱 Cow Pedigrees 题解的更多相关文章
- 洛谷P1472 奶牛家谱 Cow Pedigrees
P1472 奶牛家谱 Cow Pedigrees 102通过 193提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 农民约翰准备 ...
- 洛谷 1472 奶牛家谱 Cow Pedigrees
[题解] DP题,我们用f[i][j]表示有n个节点.高度小于等于j的二叉树的个数.f[i][j]=sigma(f[t][j-1]*f[i-t-1][j-1]) t是1~i-1范围内的奇数. #inc ...
- P1472 奶牛家谱 Cow Pedigrees
题意:问你指定二叉树有几种 1.高度为k 2.节点数为n 3.每个点的度为0或2 爆搜------->30分QAQ 首先,因为每个节点度为0或2, 所以如果n是偶数直接输出0就行了吧(嘿嘿) 如 ...
- 【dp】奶牛家谱 Cow Pedigrees
令人窒息的奶牛题 题目描述 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < ...
- USACO Section 2.3 奶牛家谱 Cow Pedigrees
OJ:http://www.luogu.org/problem/show?pid=1472 #include<iostream> using namespace std; const in ...
- [luoguP1472] 奶牛家谱 Cow Pedigrees(DP)
传送门 一个深度为i的树可以由一个根节点外加两个深度为i-1的树组成,这就决定了DP该怎么写. 然而我真的没有想到. f[i][j]表示深度为i节点数为j的个数 sum[i][j]表示深度小于等于i节 ...
- 洛谷2344 奶牛抗议(DP+BIT+离散化)
洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...
- 洛谷P2402 奶牛隐藏
洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...
- HAOI2006 (洛谷P2341)受欢迎的牛 题解
HAOI2006 (洛谷P2341)受欢迎的牛 题解 题目描述 友情链接原题 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之 ...
随机推荐
- 手动升级 Confluence 6 - 升级 Confluence
4. 备份 备份你的数据库,并且确定的你的数据库备份已经被正确的创建了.如果你的数据库不支持在线备份的话,你需要首先停止 Confluence 的运行. 备份你的 Confluence 安装目录(in ...
- 【GDSOI2019】滑稽二乘法【数据结构】【LCT】
Description 点数<=100000,操作数<=200000 Solution 经典的LCT维护子树路径信息的问题. 具体来说,我们对于每一个节点,它在splay上的子树对应了原树 ...
- ABI与ARM,X86的概念
Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2 ...
- python基础之流程控制
流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...
- kali VMWOOLS的安装
别人的教程 https://jingyan.baidu.com/article/3ea51489992f1f52e71bba45.html
- RedisTemplate zSet的使用, 根据点赞排序,和创建时间排序2种方式
使用Redis 对问题下的回答按点赞数排序的思路; 1根据问题id查出所有的回答列表; 2吧回答的ids添加到zset1中; key为id,value为赞的数量;(用于点赞排行); //批量添加 Lo ...
- 第五周学习总结&实验报告三
第五周课程总结 1.this和super的区别: this:访问本类中的属性,如果本类没有此属性则从父类中继续查找:访问本类中的方法,如果本类中没有此方法则从父类中继续查找:调用本类构造,必须放在构造 ...
- HearthBuddy 第一次调试
HearthBuddy https://www.jiligame.com/70639.html 解压缩包,打开hearthbuddy.exe直接运行就可以:不用替换mono.dll直接可用:不需要校验 ...
- java自定义classloader引发的思考
引用 java类的热替换 classloader机制 如下图所示,java的classloader是双亲委派机制.会首先从父classloader加载指定的class,如果加载不到才会从子classl ...
- DAY 2模拟赛
DAY2 依旧是yyx出题 依旧毒瘤 滞空(jump/1s/64M) 题目描述: pyy在平面上第一象限内发现了顺序n个平台(她可以踩在这些平台上,但必须从第i-1号平台跳跃至i-1号平台),这些平台 ...