E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Pedigrees
USACO2.3.2 Cow
Pedigrees
奶牛家谱(DP)
Description农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3#include#include#include#include#include#include#include#include#define_mem(a,b)memset(a,0,(b+3)>a>>b;res[1]=1;///这里res
weixin_30861797
·
2020-09-16 07:54
数据结构与算法
USACO 2.3.2 奶牛家谱 Cow
Pedigrees
题解这道题你想模拟建树的方法来做是肯定行不通的,有高度有节点数,两种限制,有点背包的意思。F[i,j]代表有j个节点i层的树的表示数量显然每棵树都可分为根节点和左右两子树,我们只需让左右子树的最高高度为i-1以及其节点和为j-1就好了。这样的情况只有三种:1.左右子树高度均为i-12.左子树高度为i-1,右子树高度小于i-13.右子树高度为i-1,左子树高度小于i-1那么状态转移方程可写作F[i,
会飞的蟋蟀
·
2020-09-16 07:50
USACO
树及衍生物
动态规划
[USACO2.3.2]Cow
Pedigrees
奶牛家谱
题目题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N(3≤N≤200)N(3\leN\le200)N(3≤N≤200)个节点。这些二叉树有如下性质:每一个节点的度是000或222。度是这个节点的孩子的数目。树的高度等于K(1constintM=9901;intdp[202][102];intmain(){in
OneInDark
·
2020-09-16 07:32
C++
动态规划
洛谷 P1472 奶牛家谱 Cow
Pedigrees
题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3#include#include#include#definelllonglong#defineM(a)memset(a,0,sizeofa)#definefo(i,j,k)for(registerinti=j;i<=k;i++)usingnames
我要吃熊猫
·
2020-09-16 07:21
树形DP
【动态规划】【USACO】Cow
Pedigrees
FarmerJohnisconsideringpurchasinganewherdofcows.Inthisnewherd,eachmothercowgivesbirthtotwochildren.TherelationshipsamongthecowscaneasilyberepresentedbyoneormorebinarytreeswithatotalofN(3constintmaxn=3
liveas
·
2020-08-19 10:53
动态规划
USACO
RQNOJ
usaco-Cow
Pedigrees
//usaco-CowPedigrees/**类型:动态规划*状态表示:dp[n][k]表示用n个节点组成前k(1、2、……k)层深度的树的种类数*则结果可以表示为dp[n][k]-dp[n][k-1]*根据树的左右子树确定该树,可以通过左右子树方案数来推该树的方案数*左右子树相互独立需要用乘法原理*状态转移:dp[n][k]=sum(dp[m][k-1]*dp[n-1-m][k-1])(m=1、
代金桥
·
2020-08-19 09:04
USACO
【USACO题库】2.3.2 Cow
Pedigrees
奶牛家谱 题解
题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3=f[n,k-1]thenwriteln(f[n,k]-f[n,k-1])elsewriteln(f[n,k]+9901-f[n,k-1]);end.上面这种方法简便,好懂,但是我还是要介绍一种官方的方法:对于一棵树,如何构成?当然是从这颗树的上一个阶
John_pascal
·
2020-08-19 08:57
USAco
【USACO】Cow
Pedigrees
DP,方程关系是,高为K,node数为N的树,相当于,(1)左子树高为K-1,右子树高#include#include#include#include#include#includeusingnamespacestd;intmain(){freopen("nocows.in","r",stdin);freopen("nocows.out","w",stdout);std::ios::sync_wi
AltairXs
·
2020-08-19 06:35
USACO
DP
[USACO2.3]奶牛家谱 Cow
Pedigrees
[USACO2.3]奶牛家谱CowPedigrees题目题目链接(luogu)思路dp,开始随便写了个dfs结果得了33分。看标签发现是dp,然后发现dp确实可行。(一下方法应该不是最优的)dp[i][k]代表节点数目为i深度为k的结构数,转移方程如下:dp[i][k]代表节点数目为i深度为k的结构数,转移方程如下:dp[i][k]代表节点数目为i深度为k的结构数,转移方程如下:dp[i][k]=
我他么怎么这么菜
·
2020-08-16 09:14
USACO
usaco Cow
Pedigrees
题意有n个节点二叉树,每个节点有0\2个儿子,给定最大深度k,求方案数%9901nusingnamespacestd;#definelllonglong#definemod9901llf[520][520];lln,k;intmain(){scanf("%lld%lld",&n,&k);for(lli=1;i<=k;i++)f[1][i]=1;for(lli=1;i<=k;i++)for(llj=
.texas
·
2019-10-14 21:00
【USACO】Cow
Pedigrees
DP,方程关系是,高为K,node数为N的树,相当于,(1)左子树高为K-1,右子树高#include#include#include#include#include#includeusingnamespacestd;intmain(){freopen("nocows.in","r",stdin);freopen("nocows.out","w",stdout);std::ios::sync_wi
AltairXs
·
2018-05-01 14:11
DP
USACO
【USACO题库】2.3.2 Cow
Pedigrees
奶牛家谱 题解
题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3=f[n,k-1]then writeln(f[n,k]-f[n,k-1]) else writeln(f[n,k]+9901-f[n,k-1]); end.上面这种方法简便,好懂,但是我还是要介绍一种官方的方法:对于一棵树,如何构成?当然是从这颗树的
John_pascal
·
2016-04-12 17:29
二叉树
pascal
树形动规
USACO-Section 2.3 Cow
Pedigrees
(DP)
描述农民方家昊准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 #include usingnamespacestd; intdp[205][105],d[205][105],n,k,i,j;//dp[i][j]表示i个结点j层高的树的个数;d[i][j]表示i个结点层高小于等于j层的树的个数 intmai
idealism_xxm
·
2016-01-27 20:00
dp
USACO
Cow
Pedigrees
Twopossiblepedigreeshave5nodesandheightequalto3:@@ /\/\ @@and@@ /\/\ @@@@题意:给你n个元素,可以组成多少颗深度为m的二叉树,每个结点的度只有0或2。果然不好下手就是DP题。本题DP状态定义就显得十分重要了。如果直接定义dp[i][j]表示用i个元素深度为j的二叉树。发现并不好转移。于是别人就想到了定义dp[i][j]
A_Cherry
·
2016-01-25 15:00
USACO Section2.3 Cow
Pedigrees
解题报告 【icedream61】
nocows解题报告------------------------------------------------------------------------------------------------------------------------------------------------【题目】 给你N个点,生成一棵K层的树,有s种情况。请输出s%9901的值。
·
2015-11-12 23:58
USACO
USACO 2.3 Cow
Pedigrees
(DP)
不好刷了,这个题想了会,中间还想过卡特兰数列。。。不过好在按照第一感觉就应该是DP,想出了三维的状态转移。。。又MLE,也是不知道给出的提示是神马意思。。。改了滚动数组,过了。效率也不是很高,差点挂掉。dp[i][j][k] 代表第i层,总数为j,最后一层为k个的二叉树种类,然后在这k个上继续搞i+1层。 1 /* 2 ID: cuizhe 3 LANG: C++
·
2015-11-12 13:12
USACO
USACO2.3.2--Cow
Pedigrees
Cow
Pedigrees
Silviu Ganceanu -- 2003 Farmer John is considering purchasing a new herd of
·
2015-11-12 11:09
USACO
USACOTrainning.Cow
Pedigrees
这题算是整死了,大大的Debug了一番。 大意是一个二叉树,点的度数只能为0或2,给出节点数和数的高度,问有多少种树,即树的计数问题。 用的是DP,f(i,j)表示i个节点构成j高度的树的个数,其中在转移的时候还需要small(i,j),表示i个节点的高度小于等于j的树的个数。 然后f(i,j)=f(left,j-1)*small(right,j-2)+small(left,j-2)*f(r
·
2015-11-11 03:52
USACO
USACO Cow
Pedigrees
【Dp】
一道经典Dp. 定义dp[i][j] 表示由i个节点,j 层高度的累计方法数 状态转移方程为: 用i个点组成深度最多为j的二叉树的方法树等于组成左子树的方法数 乘于组成右子树的方法数再累计。 & / \ @ # / \ @ @ 如图中 & 为顶点, @ 为左子树, # 为右子树 需要注意的是,左子树的节点数目同样也为奇数
·
2015-11-10 23:43
USACO
USACO 2.3.2 Cow
Pedigrees
解题报告
分类:DP 作者:ACShiryu 时间:2011-7-17 Cow
Pedigrees
Silviu Ganceanu -- 2003 Farmer John is considering
·
2015-11-08 16:37
USACO
USACO / Cow
Pedigrees
(DP)
农民约翰准备购买一群新奶牛。 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 <= N < 200)。这些二叉树有如下性质: 描述 每一个节点的度是0或2。度是这个节点的孩子的数目。 树的高度等于K(1 < K < 100)。高度是从根到最远的那个叶子所需要经过的结点数; 叶子是指没有孩子的节点。
·
2015-11-07 15:38
USACO
USACO 2.3 Cow
Pedigrees
(DP动态规划)
#include #defineDEBUG1 #defineTESTCASES9 intmain(){ #ifDEBUG inttestCase; for(testCase=1;testCase<=TESTCASES;testCase++){ charinputFileName[20]="inputX.txt"; inputFileName[5]='1'+(testCase-1); freope
tiutiu2011
·
2015-10-02 11:00
dp
动态规划
USACO
COW
2.3
Pedigrees
USACO section2.3 Cow
Pedigrees
题解&代码
神奇的DP…一棵节点数为i深度为j的树一定是由节点数为k深度为j-1的树和节点数为i-k-1深度为j-1的树和一个节点数为1深度为1的根节点组合出来的由此可得dp方程dp[i][j]+=dp[k][j-1]*dp[i-k-1][j-1]/* ID:rainbow16 LANG:C++ TASK:nocows */ #include intn,k; intdp[200][100]; intmain(
Rainbow6174
·
2015-02-15 05:00
C++
USACO
c++基础
Cow
Pedigrees
(DP)
Cow
Pedigrees
Silviu Ganceanu -- 2003 Farmer John is considering purchasing a new herd of cows
Simone_chou
·
2014-02-25 18:00
DI
USACO 2.3.2 Cow
Pedigrees
CowPedigreesSilviuGanceanu--2003FarmerJohnisconsideringpurchasinganewherdofcows.Inthisnewherd,eachmothercowgivesbirthtotwochildren.Therelationshipsamongthecowscaneasilyberepresentedbyoneormorebinarytr
supersnow0622
·
2013-08-04 21:00
USACO: Cow
Pedigrees
dp
/* ID:JangLawrence PROG:nocows LANG:C++ */ #include #include #include #include #include usingnamespacestd; typedeflonglonglng; intf(lngx) { return(x%9901+9901)%9901; } intn,k; lngdp[201][101]; intmain
Lawrence_Jang
·
2013-03-08 20:00
USACO - 2.3.2 - Cow
Pedigrees
原创文章转载请注明出处摘要:动态规划一.题目翻译1.描述:农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3<=N<200)。这些二叉树有如下性质:每一个节点的度是0或2。度是这个节点的孩子的数目。树的高度等于K(1
qingtangpaomian
·
2012-08-21 10:00
USACO
USACO 2.3 Cow
Pedigrees
(nocows)
一棵k层的二叉树,含有n个结点,每个结点可能有0或者2个孩子,求所有可能的二叉树结构数对9901取余的结果。刚开始想到动态规划,但是没想出好的动态转移方程,后来想搜索,复杂度太高。无奈看了结题报告。 dp[i][j]表示i个结点可以组成的不超过j层的不同二叉树的数量。一共i个结点,除了根结点,还有i-1个结点,左子树m个结点,右子树i-1-m个结点,左子树不超过j-1
jzzlee
·
2012-06-25 15:00
USACO
usaco:Cow
Pedigrees
dp原理:(1)dp[i][j]表示i个节点建 #include #include #include #include #defineIN"nocows.in" #defineOUT"nocows.out" #defineM205 #defineMOD9901 usingnamespacestd; intdp[M][M]; intn,k; voidsolve() { for(inti=1;i
stormdpzh
·
2012-04-09 21:00
[U]Cow
Pedigrees
DP
很明显的DP但是要注意的东西很多。不能盲目初始化,另外看的DP课件说的就是DP的特征,最优子结构,最优局部特性。找到DP的关键就在这里。/* ID:nocows LANG:C++ PROG:nocows */ #include #defineMAXN201 #defineMAXK101 #definemod9901 usingnamespacestd; intmain() { freopen("
sevenster
·
2012-02-09 19:00
USACO Section 2.3 Cow
Pedigrees
USACOSection2.3CowPedigrees一棵树,每个节点有0或2个孩子,共N个节点,高度为K,问可以组成多少种不同的结构?假设,当前树的节点问n,高度为k,那么子树可分为3种情况:左子树高度为k-1,右子树高度为1~k-2右子树高度为k-1,左子树高度为1~k-2左右子树均为k-1并且,满足题目要求的树的节点与高度有这样的关系:2*k-1=log(n+1.0)/log(2.0),其实
QuXiao
·
2011-01-10 20:00
USACO 2.3.2 Cow
Pedigrees
(DP)
USACO2.3.2CowPedigrees(DP)/**//*ID: lorelei3TASK: nocowsLANG: C++*/#include using namespace std;const int K = 105;const int N = 205;const int MOD = 9901;int dp[K][N];int s[K][N];int k,n;int main(){
小阮的菜田
·
2010-12-21 10:00
USACO 2.3 Cow
Pedigrees
奶牛家谱
Farmer John is considering purchasing a new herd of cows. In this new herd, each mother cow gives birth to two children. The relationships among the cows can easily be represented by one or more binar
zqynux
·
2010-03-21 15:00
C++
c
F#
C#
J#
USACO Training Section 2.3 Cow
Pedigrees
英文原题 中文题译 大意:给定节点数和树的高度,求完全二叉树的个数。 很多磨的一题。思路很清晰,DP也不难,关键在于边界条件处理,以及注意是完全二叉树,这样,左右子树要至少有一个节点或者为叶子节点。从而,偶数节点数的计数必然为0。 本来一个小时之前就还算顺利的做好了,但35,7的时候对,99 15的时候不对,晕了。头痛了半天,打开标程看了看,它计算lower的方式是
blackcoffee
·
2010-01-14 00:00
C++
c
C#
asp
USACO -- S2.3 Cow
Pedigrees
S2.3CowPedigreesThisisatypicalDPproblem.Sinceallthetreeshaveeithertwochildrenornone,weknowthatalltreeswithdepthicanbebuiltuponthoseoneswithdepthi+1.Andthisiscrucialtosolvingthisproblem. Wedefinetable[
pcfeng502
·
2009-07-14 16:00
USACO 2.3 Cow
Pedigrees
USACO2.3CowPedigrees用memoizationdp解。用dp[n][k]来记录结点数为n,高度#include using namespace std;ifstream fin("nocows.in");ofstream fout("nocows.out");int dp[200][100];int n,k;int ped_num(int node,int height);voi
止于自娱
·
2009-06-24 20:00
Section 2.3 - Cow
Pedigrees
1 #include 2 3 using namespace std; 4 5 int main() 6 { 7 freopen("nocows.in", "r", stdin); 8 freopen("nocows.out", "w", stdout); 9 10 int n, m;11 int cnt[100][200] = { 0 };12 13
superman
·
2009-04-19 22:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他