1023 Train Problem II
来源:互联网 发布:淘宝固话和宽带充值 编辑:程序博客网 时间:2024/05/22 16:49
Train Problem II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2034 Accepted Submission(s): 1191
Problem Description
As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway.
Input
The input contains several test cases. Each test cases consists of a number N(1<=N<=100). The input is terminated by the end of file.
Output
For each test case, you should output how many ways that all the trains can get out of the railway.
Sample Input
12310
Sample Output
12516796HintThe result will be very large, so you may not process it by 32-bit integers.
Author
Ignatius.L
#include <string>#include <iostream>using namespace std;int main(int ac, char** av){string a[101] = {"0","1","2","5","14","42","132","429","1430","4862","16796","58786","208012","742900","2674440","9694845","35357670","129644790","477638700","1767263190","6564120420","24466267020","91482563640","343059613650","1289904147324","4861946401452","18367353072152","69533550916004","263747951750360","1002242216651368","3814986502092304","14544636039226909","55534064877048198","212336130412243110","812944042149730764","3116285494907301262","11959798385860453492","45950804324621742364","176733862787006701400","680425371729975800390","2622127042276492108820","10113918591637898134020","39044429911904443959240","150853479205085351660700","583300119592996693088040","2257117854077248073253720","8740328711533173390046320","33868773757191046886429490","131327898242169365477991900","509552245179617138054608572","1978261657756160653623774456","7684785670514316385230816156","29869166945772625950142417512","116157871455782434250553845880","451959718027953471447609509424","1759414616608818870992479875972","6852456927844873497549658464312","26700952856774851904245220912664","104088460289122304033498318812080","405944995127576985730643443367112","1583850964596120042686772779038896","6182127958584855650487080847216336","24139737743045626825711458546273312","94295850558771979787935384946380125","368479169875816659479009042713546950","1440418573150919668872489894243865350","5632681584560312734993915705849145100","22033725021956517463358552614056949950","86218923998960285726185640663701108500","337485502510215975556783793455058624700","1321422108420282270489942177190229544600","5175569924646105559418940193995065716350","20276890389709399862928998568254641025700","79463489365077377841208237632349268884500","311496878311103321137536291518809134027240","1221395654430378811828760722007962130791020","4790408930363303911328386208394864461024520","18793142726809884575211361279087545193250040","73745243611532458459690151854647329239335600","289450081175264899454283846029490767264392230","1136359577947336271931632877004667456667613940","4462290049988320482463241297506133183499654740","17526585015616776834735140517915655636396234280","68854441132780194707888052034668647142985206100","270557451039395118028642463289168566420671280440","1063353702922273835973036658043476458723103404520","4180080073556524734514695828170907458428751314320","16435314834665426797069144960762886143367590394940","64633260585762914370496637486146181462681535261000","254224158304000796523953440778841647086547372026600","1000134600800354781929399250536541864362461089950800","3935312233584004685417853572763349509774031680023800","15487357822491889407128326963778343232013931127835600","60960876535340415751462563580829648891969728907438000","239993345518077005168915776623476723006280827488229600","944973797977428207852605870454939596837230758234904050","3721443204405954385563870541379246659709506697378694300","14657929356129575437016877846657032761712954950899755100","57743358069601357782187700608042856334020731624756611000","227508830794229349661819540395688853956041682601541047340","896519947090131496687170070074100632420837521538745909320",};int n;while( cin >> n ) {cout << a[n] << endl;}return 0;}
/* *Train Problem II *2011/07/19art *//* *卡特兰数 *h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2) *or *h(n)=((4*n-2)/(n+1))*h(n-1); */#include <stdio.h>void init_a(int a[101][101]);void printa(int a[101][101], int n);int main(int ac, char** av){int a[101][101] = {0};init_a(a);// 初始化结果/*int n;while ( scanf("%d", &n) != EOF ) {printa(a, n);}*/for ( int i = 1; i != 101; ++i ) {printa(a, i);}return 0;}void printa(int a[101][101], int n) {int j = a[n][0];if ( a[n][j] == 0 ) {;} else {printf("%d", a[n][j]);}--j;for ( ; j != 0; --j ) {printf("%04d", a[n][j]);// 去除 0356 0056 之类情况!}printf("\n");}void init_a(int a[101][101]) {a[1][1] = 1;a[2][1] = 2;a[1][0] = a[2][0] = 1;// a[i][0] 存放数组长度int i = 0;for ( i = 3; i != 101; ++i) {int flag = 0;int temp = 0;int j = 0;for ( j = 1; j <= a[i-1][0]; ++j ) {// 乘法部分 万位级// 可能会出现 0000 0354两类情况!temp = a[i-1][j] * (4 * i - 2) + flag;a[i][j] = temp % 10000;flag = temp / 10000;}if ( flag != 0 ) {// 检查最高位a[i][0] = j;a[i][j] = flag;} else {a[i][0] = j - 1;}flag = 0;for ( j = a[i][0]; j != 0; --j ) {// 除法部分 万位级temp = a[i][j] + flag * 10000;a[i][j] = temp / (i + 1);flag = temp % (i + 1);}j = a[i][0];// 去除 0000 此类情况!if ( a[i][j] == 0 ) {--a[i][0];}}}
- 1023:Train Problem II
- 1023 Train Problem II
- hdu 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDU-1023 Train Problem II
- HDU 1023 Train Problem II
- hdu 1023 Train Problem II
- hdu 1023 Train Problem II
- hdu 1023 - Train Problem II
- HDU 1023 Train Problem II
- hdu 1023 Train Problem II
- hdu 1023 Train Problem II
- hdu-1023-Train Problem II
- hdu 1023 Train Problem II
- HDU 1023 Train Problem II
- HDOJ 1023 Train Problem II
- HDU 1023 Train Problem II
- pku 2594
- 就像愛你
- There's Much More than Intel/AMD Inside
- 微软一站式示例代码库 7月新代码示例发布
- 今天师傅教我用的自动化生成工具
- 1023 Train Problem II
- apk odex 合并方法
- JavaScript正则表达式解析
- 成为掌握企业聘用趋势的人才
- hdu 3401 Trade //单调队列+DP
- Android AIDL远程服务使用示例
- gridview
- 并查集
- NFS setattr操作错误处理机制