pku2084 Game of Connections
2013-05-28 16:48
162 查看
http://poj.org/problem?id=2084
组合数学,Catalan数,高精度
组合数学,Catalan数,高精度
#include <stdio.h> #include <string> #include <iostream> using namespace std; const int ten[4] = {1, 10, 100, 1000}; const int max1=1000; struct BigNumber{ int d[max1]; BigNumber(string s) { int len = s.size(); d[0] = (len-1)/4+1; int i, j, k; for(i=1; i<max1; ++i) d[i] =0; for(i=len-1; i>=0; --i) { j = (len-i-1)/4+1; k = (len-i-1)%4; d[j]+=ten[k]*(s[i]-'0'); } while(d[0]>1 && d[d[0]]==0) --d[0]; } BigNumber() { *this = BigNumber(string("0")); } string toString() { string s(""); int i, j, temp; for(i=3; i>=1; --i) if(d[d[0]]>=ten[i]) break; temp = d[d[0]]; for(j=i; j>=0; --j) { s = s+(char)(temp/ten[j]+'0'); temp %= ten[j]; } for(i=d[0]-1; i>0; --i) { temp = d[i]; for(j=3; j>=0; --j) { s = s+(char)(temp/ten[j]+'0'); temp %= ten[j]; } } return s; } }zero("0"), d, temp, mid1[15]; BigNumber operator + (const BigNumber &a, const BigNumber &b){ BigNumber c; c.d[0] = max(a.d[0], b.d[0]); int i, x=0; for(i=1; i<=c.d[0]; ++i) { x = a.d[i]+b.d[i] +x; c.d[i]=x%10000; x/=10000; } while(x!=0) { c.d[++c.d[0]] = x%10000; x/=10000; } return c; } BigNumber operator *(const BigNumber &a, const BigNumber &b){ BigNumber c; c.d[0] = a.d[0] + b.d[0]; int i, j, x; for(i=1; i<=a.d[0]; ++i) { x= 0; for(j=1; j<=b.d[0]; ++j) { x = a.d[i]*b.d[j]+x+c.d[i+j-1]; c.d[i+j-1] = x%10000; x /= 10000; } c.d[i+b.d[0]] = x; } while((c.d[0]>1) && (c.d[c.d[0]]==0)) --c.d[0]; return c; } int main() { BigNumber one("1"), h[103]; int i, j, n; h[0] = one; h[1] = one; for(n=2; n<=100; n++) { BigNumber sum("0"); for(i=0; i<=n-1; i++) { sum = sum + (h[i] * h[n-i-1]); } h = sum; } while(cin>>i, i+1) { cout<<h[i].toString()<<endl; } return 0; }
相关文章推荐
- PKU 2084 Game of Connections
- POJ 2084 Game of Connections(JAVA练习)
- poj2084 Game of Connections(Catalan)
- POJ 2084 Game of Connections
- POJ 2084 Game of Connections
- poj 2084 Game of Connections
- POJ2084 Game of Connections(catalan数)
- poj 2084 Game of Connections
- 20140714 「初等数论 - 卡特兰数」 POJ 2084 Game of Connections
- POJ-2084-Game of Connections
- poj 2084 Game of Connections (卡特兰数,大数乘除)
- poj2084 Game of Connections
- POJ 2084 Game of Connections
- POJ2084 Game of Connections(数学,dp)
- poj 2084 Game of Connections (卡特兰数、大数)
- POJ 2084 Game of Connections
- [POJ] 2084 -> Game of Connections
- POJ 2084 Game of Connections 卡特兰数+JAVA -
- POJ2084——Game of Connections
- POJ2084—Game of Connections(c++高精度)