p1472 Cow Pedigrees
用dp[i][j]记录i个点,组成深度恰好为j的方案数。arr[i][j]记录i个点,深度<=j的方案数。那么dp[i][j]只有i为奇数时不为0。而arr[i][j]等于dp[i][j]的前缀和(i相同时)。而dp[i][j],i为奇数有值,等于左子树分奇数个,右子树分奇数个的所有情况,并且左子
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#include <bitset>
#define mkp make_pair
using namespace std;
const double EPS=1e-;
typedef long long lon;
const lon SZ=,INF=0x7FFFFFFF,mod=;
int dp[][],arr[][]; int main()
{
std::ios::sync_with_stdio();
//freopen("d:\\1.txt","r",stdin);
lon casenum;
//cin>>casenum;
//for(lon time=1;time<=casenum;++time)
{
int n,k;
cin>>n>>k;
for(int i=;i<;++i)arr[][i]=;
dp[][]=;
for(int i=;i<=n;++i)
{
if(i&)
for(int j=;j<=k;++j)
{
for(int p=i-;p>=;p-=)
{
dp[i][j]+=*dp[p][j-]*arr[i--p][j-]%mod;
dp[i][j]-=dp[p][j-]*dp[i--p][j-];
}
dp[i][j]%=mod;
arr[i][j]=arr[i][j-]+dp[i][j];
arr[i][j]%=mod;
//if(i==3)cout<<j<<" "<<dp[i][j]<<endl;
}
}
cout<<(dp[n][k]+mod)%mod<<endl;
}
return ;
}
树必须为j-1深度,或者右子树必须为j-1深度,减去两者同为j-1深度。
p1472 Cow Pedigrees的更多相关文章
- 洛谷P1472 奶牛家谱 Cow Pedigrees
P1472 奶牛家谱 Cow Pedigrees 102通过 193提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 农民约翰准备 ...
- USACO 2.3 Cow Pedigrees
Cow Pedigrees Silviu Ganceanu -- 2003 Farmer John is considering purchasing a new herd of cows. In t ...
- P1472 奶牛家谱 Cow Pedigrees
题意:问你指定二叉树有几种 1.高度为k 2.节点数为n 3.每个点的度为0或2 爆搜------->30分QAQ 首先,因为每个节点度为0或2, 所以如果n是偶数直接输出0就行了吧(嘿嘿) 如 ...
- 洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
题面 这道题我觉得是个不错的题: 根据题意可以较清晰的发现ans只和n和k有关:(因为输入的只有这两个数啊~): 那么设f[i][j]表示前i层用了j个节点的方案数,g[i][j]表示深度小于等于i并 ...
- 【USACO 2.3】Cow Pedigrees(DP)
问n个结点深度为k且只有度为2或0的二叉树有多少种. dp[i][j]=dp[lk][ln]*dp[rk][j-1-ln],max(lk,rk)=i-1. http://train.usaco.org ...
- USACO Section 2.3 奶牛家谱 Cow Pedigrees
OJ:http://www.luogu.org/problem/show?pid=1472 #include<iostream> using namespace std; const in ...
- USACO Cow Pedigrees 【Dp】
一道经典Dp. 定义dp[i][j] 表示由i个节点,j 层高度的累计方法数 状态转移方程为: 用i个点组成深度最多为j的二叉树的方法树等于组成左子树的方法数 乘于组成右子树的方法数再累计. & ...
- USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】
nocows解题报告------------------------------------------------------------------------------------------ ...
- 【dp】奶牛家谱 Cow Pedigrees
令人窒息的奶牛题 题目描述 农民约翰准备购买一群新奶牛. 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < ...
随机推荐
- Oracle错误——ORA-12704:字符集不匹配
错误 在查询使用coalesce把字符串进行转换时,报错ORA-12704:字符集不匹配 如下图 解决方法 在网上找了很多方法,有使用Translate转换的:有使用to_char()的,经过测试不符 ...
- BottomNavigationBar 底部导航控件
BottomNavigationBar 底部导航控件 属性 说明BottomNavigationBarItem 多个 item,iconSize icon大小currentIndex 默认选中第几个o ...
- “64位调试操作花费的时间比预期要长",无法运行调试解决办法
以管理员身份在命令提示符那里打入如下命令: netsh winsock reset catalognetsh int ip reset reset.log hit 或者是 打开Microsoft Vi ...
- NLP related basic knowledge with deep learning methods
NLP related basic knowledge with deep learning methods 2017-06-22 First things first >>> ...
- [蓝桥] 基础练习 十进制转十六进制 (java)
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满1 ...
- kubernetes 实战4_命令_Configure Pods and Containers
Configure Service Accounts for Pods A service account provides an identity for processes that run in ...
- Kubernetes之Controllers三
StatefulSets StatefulSet is the workload API object used to manage stateful applications. Note: Stat ...
- Bootstrap 3 媒体查询
可以参考 Bootstrap 的媒体查询,写网站. html: <div class="bootstrap-3-media"> <p>Mobile-Fir ...
- HDU 5442 Favorite Donut(暴力 or 后缀数组 or 最大表示法)
http://acm.hdu.edu.cn/showproblem.php?pid=5442 题意:给出一串字符串,它是循环的,现在要选定一个起点,使得该字符串字典序最大(顺时针和逆时针均可),如果有 ...
- React内三种函数的写法
以下提供三种React内函数的写法,都可以正常运行,有疑问可以留言 写法一:让函数内部的this指向这个类的实例,它是用bind实现的,bind的第一个参数表示context,就是this. //写 ...