博客
关于我
Train Problem II(卡特兰数+大数乘除)
阅读量:628 次
发布时间:2019-03-13

本文共 1689 字,大约阅读时间需要 5 分钟。

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

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
12516796
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) + + h(n-1)h(0) (其中n>=2);
这里用的大数;
代码:
#include
#include
#include
#include
#include
#include
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[N][0];i>=1;i--)printf("%d",ans[N][i]); puts(""); } return 0;}

 

转载地址:http://fpeaz.baihongyu.com/

你可能感兴趣的文章
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>