HDU1130 卡特兰数
2016-05-24 10:17
435 查看
How Many Trees?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3397 Accepted Submission(s):
1964
[align=left]Problem Description[/align]
A binary search tree is a binary tree with root k such
that any node v reachable from its left has label (v) <label (k) and any node
w reachable from its right has label (w) > label (k). It is a search
structure which can find a node with label x in O(n log n) average time, where n
is the size of the tree (number of vertices).
Given a number n, can you
tell how many different binary search trees may be constructed with a set of
numbers of size n such that each element of the set will be associated to the
label of exactly one node in a binary search tree?
[align=left]Input[/align]
The input will contain a number 1 <= i <= 100 per
line representing the number of elements of the set.
[align=left]Output[/align]
You have to print a line in the output for each entry
with the answer to the previous question.
[align=left]Sample Input[/align]
1
2
3
[align=left]Sample Output[/align]
1
2
5
[align=left]Source[/align]
UVA
[align=left]Recommend[/align]
Eddy | We have carefully selected several similar
problems for you: 1131 1134 1133 1023 2067
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3397 Accepted Submission(s):
1964
[align=left]Problem Description[/align]
A binary search tree is a binary tree with root k such
that any node v reachable from its left has label (v) <label (k) and any node
w reachable from its right has label (w) > label (k). It is a search
structure which can find a node with label x in O(n log n) average time, where n
is the size of the tree (number of vertices).
Given a number n, can you
tell how many different binary search trees may be constructed with a set of
numbers of size n such that each element of the set will be associated to the
label of exactly one node in a binary search tree?
[align=left]Input[/align]
The input will contain a number 1 <= i <= 100 per
line representing the number of elements of the set.
[align=left]Output[/align]
You have to print a line in the output for each entry
with the answer to the previous question.
[align=left]Sample Input[/align]
1
2
3
[align=left]Sample Output[/align]
1
2
5
[align=left]Source[/align]
UVA
[align=left]Recommend[/align]
Eddy | We have carefully selected several similar
problems for you: 1131 1134 1133 1023 2067
http://blog.csdn.net/sunshine_yg/article/details/47685737 卡特兰数 #include<iostream> #include<cstring> #include<string> #include<cstdio> #include<algorithm> using namespace std; const int base = 10000; const int N = 100 + 2; int katelan ; int main() { katelan[1][1] = 1; katelan[2][1] = 2; katelan[3][1] = 5; for (int i = 4; i <= 100; i++) { for (int j =1; j<100; j++)//大数乘法 { katelan[i][j] += katelan[i - 1][j] * (4 * i - 2); katelan[i][j + 1] += katelan[i][j] / base; katelan[i][j] %= base; } int temp; for (int j = 100; j > 0; j--)//大数除法 { temp=katelan[i][j] % (i + 1); katelan[i][j-1]+=temp* base; katelan[i][j] /= (i + 1); } } int n; while (cin >> n) { int i = 100; while (katelan [i] == 0)i--; cout << katelan [i--]; while (i > 0) printf("%04d", katelan [i--]); cout << endl; } return 0; }
相关文章推荐
- HDU1009老鼠的旅行 (贪心算法)
- HDU1005&&NEFU67 没有循环节
- HDU1003MAX SUM
- Java NIO编程
- Intersection of Two Linked Lists
- HDU2.2.3 (汉诺塔VII)
- HDU 2.1.7 (求定积分公式)
- java输出对象类总是为内存地址
- CodeForces - 427B (模拟题)
- iOS学习之—— dequeueReusableCellWithIdentifier
- SetUnhandledExceptionFilter让程序优雅的崩溃(转)
- http://www.zhihu.com/question/24301047
- CodeForces - 427A (警察和罪犯 思维题)
- CodeForces - 426B(对称图形)
- select、poll、epoll之间的区别总结(转)
- 被释放遇到的Crash message sent to deallocated instance
- CodeForces - 426A(排序)
- Codeforces 424C(异或)
- HDU 2686 Matrix||HDU 3376 Matrix Again (拆点费用流)
- 某单位“高质量软件需求工程”内训圆满结束!