英文原题 中文题译
大意:给定节点数和树的高度,求完全二叉树的个数。
很多磨的一题。思路很清晰,DP也不难,关键在于边界条件处理,以及注意是完全二叉树,这样,左右子树要至少有一个节点或者为叶子节点。从而,偶数节点数的计数必然为0。
本来一个小时之前就还算顺利的做好了,但35,7的时候对,99 15的时候不对,晕了。头痛了半天,打开标程看了看,它计算lower的方式是通过full来做的。想了半天,怀疑自己的lower递归写错,于是按标程的思路重写了一遍。写完,马上骂自己是猪。想想这里的结果是摸P的(结果太大),P=9901。也就是说,在计算中可能超出整数上限导致出错。而35 7既然对,那么错就错在模P上。这才想起来在原来的实现中每次计算都模了P但最后结果没模P,晕倒。回头一看,原程序已不见了,又重头写过,处理边界条件时已经头痛的厉害,总算搞定。唉。难道真的是老了????
注:没优化了,用对称性可以使计算量减半。
大意:给定节点数和树的高度,求完全二叉树的个数。
很多磨的一题。思路很清晰,DP也不难,关键在于边界条件处理,以及注意是完全二叉树,这样,左右子树要至少有一个节点或者为叶子节点。从而,偶数节点数的计数必然为0。
本来一个小时之前就还算顺利的做好了,但35,7的时候对,99 15的时候不对,晕了。头痛了半天,打开标程看了看,它计算lower的方式是通过full来做的。想了半天,怀疑自己的lower递归写错,于是按标程的思路重写了一遍。写完,马上骂自己是猪。想想这里的结果是摸P的(结果太大),P=9901。也就是说,在计算中可能超出整数上限导致出错。而35 7既然对,那么错就错在模P上。这才想起来在原来的实现中每次计算都模了P但最后结果没模P,晕倒。回头一看,原程序已不见了,又重头写过,处理边界条件时已经头痛的厉害,总算搞定。唉。难道真的是老了????
注:没优化了,用对称性可以使计算量减半。
/* ID: blackco3 TASK: nocows LANG: C++ */ #include <iostream> #include <memory.h> using namespace std ; #define _max_node_ 300 #define _max_high_ 100 const int P = 9901 ; int _node, _high ; int lower[_max_node_+1][_max_high_], full[_max_node_+1][_max_high_+1] ; int main() { freopen("nocows.out", "w", stdout); freopen("nocows.in", "r", stdin); cin >> _node >> _high; memset( lower, 0, sizeof(lower) ); memset( full, 0, sizeof(full) ); for( int i=2; i<=_high; i++ ) lower[1][i]=1; for( int h=2; h<_high; h++ ) for( int n=3; n<=_node; n+=2 ){ for( int ln=1; ln<=n-1; ln+=2 ) lower[n][h] += ( lower[ln][h-1]*lower[n-ln-1][h-1] ) % P ; lower[n][h] %= P ; } full[1][1]=1 ; for( int h=2; h<=_high; h++ ) for( int n=3; n<=_node; n+=2 ){ for( int ln=1; ln<=n-1; ln+=2 ){ full[n][h] += ( full[ln][h-1] * full[n-ln-1][h-1] ) % P; full[n][h] += ( full[ln][h-1] * lower[n-ln-1][h-1] ) % P; full[n][h] += ( lower[ln][h-1] * full[n-ln-1][h-1] ) % P; } full[n][h] %= P ; } cout << full[_node][_high] << endl ; return 0; }
发表评论
-
USACO Training Section 4.2 Cowcycles
2010-01-31 21:11 888英文原题 中文题译 ... -
USACO Training Section 4.2 Job Processing
2010-01-30 17:31 1136英文原题 中文题译 大意: 有N个工件,每个工件要经 ... -
USACO Training Section 4.2 Drainage Ditches ISAP非递归和多路增广递归
2010-01-29 19:39 1852郁闷。不小心覆盖了重 ... -
USACO Training Section 4.2 The Perfect Stall 匈牙利算法的递归和非递归实现
2010-01-28 21:21 1647英文原题 中文题译 ... -
USACO Training Section 4.1 Cryptcowgraphy 奶牛密码
2010-01-27 20:58 1200英文原题 中文题译 大意: 奶牛们要从农场逃跑 ... -
USACO Training Section 4.1 Beef McNuggets
2010-01-26 21:37 975英文原题 中文题译 大意: 给定N个正整数, ... -
USACO Training Section 4.1 Fence Loops
2010-01-24 20:14 1074英文原题 大意: 农夫布朗的牧场上的篱笆已经失 ... -
USACO Training Section 3.4 Closed Fences
2010-01-23 17:50 1408英文原题 题意 一个 ... -
USACO Training Section 3.4 American Heritage
2010-01-21 23:19 786英文原题 大意:有一个由最多26个大写字母构成的二叉树 ... -
USACO Training Section 3.4 Raucous Rockers
2010-01-21 23:09 801英文原题 大意:有S首歌,要放到D个CD里。每首歌有一个 ... -
USACO Training Section 3.4 Electric Fence
2010-01-21 12:57 976英文原题 大意:给定一个三角形(0,0),(m,n),( ... -
USACO Training Section 3.3 Riding the Fences
2010-01-20 23:38 1211英文原题 中文题译 经典的求欧拉路径:给定最多两个奇 ... -
USACO Training Section 3.3 Shopping Offers
2010-01-19 22:18 919英文原题 中文题译 这是个与日常生活相关的题。商场促销 ... -
USACO Training Section 3.3 A Game
2010-01-19 20:54 1097英文原题 有如下一个双人游戏:N(2 <= N & ... -
USACO Training Section 3.3 Home on the Range
2010-01-19 19:36 778英文原题 中文题译 大意:给定一个01矩阵,计算其中全为 ... -
USACO Training Section 3.3 Camelot
2010-01-19 03:39 1235英文原题 中文题译 ... -
USACO Training Section 3.2 Sweet Butter
2010-01-19 00:10 1051英文原题 中文题译 大意:农场之间有路构成稀疏无向图,若 ... -
USACO Training Section 3.2 Magic Squares
2010-01-18 23:11 934英文原题 中文题译 大意:有人发明了一种有8个块三种变换 ... -
USACO Training Section 3.2 Feed Ratios
2010-01-18 20:52 1313英文原题 中文题译 大意:给出整数a[i][j]和 ... -
USACO Training Section 3.2 Spinning Wheels
2010-01-18 19:37 871英文原题 中文题译 大意:有五个纺车飞轮,每个都有最多五 ...
相关推荐
usaco section2.3--section5.5源程序。。。。。。。。。。。。。。。。
USACO1.4~2.3C语言题解 绝对能通过
ACM----USACO Training(解题博客网),提供了USACO Training解题的代码,可以参考一下
USACO全部译题 USACO Training Program Gateway
自己写的usaco_training带代码。供参考,有一道题是cheat的。自己看吧。
usaco测试数据+标程 usaco的section1到section5的所有测试数据 以及标准程序
usaco2.3解题报告1
usaco解题报告,就是usaco.training.gateway上面的题目全解
USACO题解+代码+翻译,好东西,超级齐全,对大家帮助不小,特别是现在nocow挂了
[USACO 1.1.4]破碎的项链.cpp
适合USACO的Java选手参考
2.3 Section 2.3 2.4 Section 2.4 3 Chapter3 3.1 Section 3.1 3.2 Section 3.2 3.3 Section 3.3 3.4 Section 3.4 4 Chapter4 4.1 Section 4.1 4.2 Section 4.2 4.3 Section 4.3 4.4 Section 4.4 5 Chapter5 5.1 ...
USACO_培训USACO_培训Ride.java-> Gift1.java->
USACO training 教程翻译合集(清晰明确)
USACO培训页面美国计算机奥林匹克训练页2015年6月17日开始
One of the answer of the USACO training exercises.
usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
数据结构机考用的USACO网站上的题目,对机考刷题很有帮助的!要多锻炼编程能力!
usaco历年测试数据
USACO题集及答案