
特殊的数
BEconfidence
坚持才是胜利之道
展开
-
hdu 1133
题意:电影院卖票。一张票50元。一开始没有零钱。有m+n个人买票,m个人拿50元的钞票,n个人拿100的。问队伍有多少种排列方式可以使得卖票能顺利进行下去。 mark:如果要使得卖票的行为进行下去,对于任意前k个人,必须满足这k个人里面拿100的人数不多于拿50的人数。结果会是一个大整数,要用高精度。 公式是n!m!(m-n+1)/(m+1)。推导比较难想,和卡特兰数有关,网上有一篇文原创 2015-06-15 13:51:15 · 1239 阅读 · 0 评论 -
HDU 1134 卡特兰数 大数乘法除法
大数乘法:大数*(一个 int64 范围之内的数) 可以用分段乘法 以下是 n! (n#include #include #include #define N 10000 using namespace std; int a[N]; int main() { int n,t,i,j,k; while(cin>>n) { memset(a,0,size原创 2015-06-14 23:31:48 · 735 阅读 · 0 评论 -
hdu1134 Game of Connections(卡特兰数)
卡特兰公式为: (n+2)record[n+1]=(4n+2)record[n] #include #include int record[110][110]; int a1[110],weishu[110]; void cheng(int a){ int i,m,c,chushu,temp; m=weishu[a-1]; c=0; for(i=0;i<原创 2015-06-15 13:36:30 · 1019 阅读 · 0 评论 -
HDU 2067 小兔的棋盘(dp)
#include #include #include typedef long long ll; ll dp[40][40]; void init() { int i,j; for(i=1;i<40;i++) dp[1][i]=1; for(i=2;i<40;i++) { dp[i][i]=dp[i-1][i]; f原创 2015-06-14 23:23:03 · 506 阅读 · 0 评论