hdu1023
来源:互联网 发布:爱淘宝网红包 编辑:程序博客网 时间:2024/04/26 21:26
//这个题目是卡塔兰数列的经典题目可以直接用卡塔兰公式,然后大数相乘,因为数据不大,所以还是比较好用的,注意在做的过程中感觉打表你法比较方便
//卡塔兰数列,在很多问题都是非常实用的
#include <stdio.h>#include <string.h>int c[102][1000],Y[102];void multy(int a[1000],int b[1000],int n,int la,int lb){int i,j;for(i=0;i<=la;i++)for(j=0;j<=lb;j++){c[n][i+j]+=a[i]*b[j];}for(i=0;i<=la+lb;i++){ c[n][i+1]+=c[n][i]/10; c[n][i]=c[n][i]%10;}for(i=la+lb+10;i>=0;i--)if(c[n][i]!=0)break;Y[n]=i;}int main(){int a[1000],b[1000];int i,j,k,l,n;memset(c,0,sizeof(c));c[0][0]=1;c[1][0]=1;c[2][0]=2;c[3][0]=5;Y[0]=0;Y[1]=0;Y[2]=0; Y[3]=0;for(i=4;i<=100;i++){for(j=0;j<i;j++){memset(a,0,sizeof(a));memset(b,0,sizeof(b));for(k=Y[j];k>=0;k--)a[k]=c[j][k];for(k=Y[i-j-1];k>=0;k--)b[k]=c[i-j-1][k]; multy(a,b,i,Y[j],Y[i-j-1]);}}while(scanf("%d",&n)!=EOF){ for(i=Y[n];i>=0;i--)printf("%d",c[n][i]);printf("\n");}return 0;}
0 0
- hdu1023
- hdu1023
- HDU1023
- hdu1023 兰塔数
- hdu1023 1134
- hdu1023 高精度
- hdu1023-Train Problem II
- HDU1023(Catalan数)
- hdu1023(catalan问题)
- HDU1023(卡特兰数)
- hdu1023(广度优先搜索)
- hdu1023卡特兰数
- HDU1023&&大数的规律题
- 卡特兰数模板 hdu1023
- hdu1023(卡特兰数)
- HDU1023——Train Problem II
- hdu1023 Train Problem II(卡特兰数)
- HDU1023 Train Problem II【Catalan数】
- 黑马程序员-泛型-T-E-泛型类-泛型方法-泛型接口
- 空函数有参函数调用参数的注意事项Swift 1.1语言
- 从Tomcat服务器的日志说起
- android SDK下各目录的用途,以及在不同系统下哪些是通用的。
- codeforces round 285 div285 Misha and Forest
- hdu1023
- Fragment_学习3
- Boost.Asio c++ 网络编程翻译(3)
- Erlang入门:构建application练习1
- HelloWorld 模块
- pcb设计需要考虑的六件事
- 获取进程信息
- nginx安装
- Bundle传递数据