Train Problem II(卡特兰数+大数乘除)
2016-02-29 19:51
483 查看
Train Problem II
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7539 Accepted Submission(s): 4062[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
For each test case, you should output how many ways that all the trains can get out of the railway.
[align=left]Sample Input[/align]
1
2
3
10
[align=left]Sample Output[/align]
1
2
5
16796
Hint
The result will be very large, so you may not process it by 32-bit integers.
题解:卡特兰数:h( n ) = ( ( 4*n-2 )/( n+1 )*h( n-1 ) );也可以用java,h(n)= h(0)*h(n-1) + h(1)*h(n-2) +
![](http://www.cppblog.com/Images/dot.gif)
+ h(n-1)h(0) (其中n>=2);
这里用的大数;
代码:
#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<stack> using namespace std; const int INF=0x3f3f3f3f; #define mem(x,y) memset(x,y,sizeof(x)) #define SI(x) scanf("%d",&x) #define PI(x) printf("%d",x) int N; //h( n ) = ( ( 4*n-2 )/( n+1 )*h( n-1 ) ); int ans[110][110]; void db(){ ans[0][0]=1; ans[0][1]=1; ans[1][0]=1; ans[1][1]=1; int len=1,yu=0; for(int i=2;i<=100;i++){ for(int j=1;j<=len;j++){ int t=ans[i-1][j]*(4*i-2)+yu; yu=t/10; ans[i][j]=t%10; } while(yu){ ans[i][++len]=yu%10; yu/=10; } for(int j=len;j>=1;j--){ int t=ans[i][j]+yu*10; ans[i][j]=t/(i+1); yu=t%(i+1); } while(!ans[i][len])len--; ans[i][0]=len; } } int main(){ mem(ans,0); db(); while(~SI(N)){ for(int i=ans [0];i>=1;i--)printf("%d",ans [i]); puts(""); } return 0; }
相关文章推荐
- C++ vector 类学习笔记 http://blog.csdn.net/whz_zb/article/details/6827999
- ZOJ Paint the Grid Reloaded
- 【杭电oj】1702 - ACboy needs your help again!(栈和队列)
- HDU 1022 Train Problem I(stack)
- View、Canvas、Paint
- 详解Paint的setShader(Shader shader)
- aix5.3下安装svn命令
- PRVF-4661 During cluvfy on AIX platform
- 【分布式存储】GlusterFS failing to mount at boot with Ubuntu 14.04
- win10 Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host
- 11.2 Job Seperation causes WARNINGS and ORA-15025 ORA-27041 With Certain Users (文档 ID 1317692.1)
- 苹果手机safairi不支持position:fixed
- 车型识别“Hyper-class Augmented and Regularized Deep Learning for Fine-grained Image Classification”
- 【杭电】[1702]ACboy needs your help again!
- AIR移动(Starling)开发笔记基础篇
- 程序运行提示msvcp100d.dll和msvcp100r.dll缺少的解决方案 http://blog.csdn.net/ztz0223/article/details/8886247
- 雅虎的人工智能有独门武器!
- ultraiso 9.6 注册码
- MediaPlayerActivity MainList
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI