hdu2068 & hdu 2049 错排组合
2012-07-18 22:50
232 查看
这部分涉及的知识为组合数和错排 ,参考http://blog.csdn.net/jiahui524/article/details/6624977
比较简单
hdu2068
另一题,非常相似,上面的代码给一点点的改动
hdu 2049
比较简单
hdu2068
#include<stdio.h> #include<math.h> __int64 C(int n,int m) //组合数公式 { __int64 u,d,i; //组合数公式中的 分子u和分母d if(m>n/2) m=n-m; //防止溢出 for(u=d=i=1;i<=m;i++) { u=u*(n-i+1); d=d*i; } return u/d; } main() { int i,M,N; __int64 f[14]={1,0,1},sum; for(i=3;i<=13;i++) f[i]=(i-1)*(f[i-1]+f[i-2]); while(scanf("%d",&N),N) { for(sum=i=0;i<=N/2;i++) sum+=C(N,N-i)*f[i]; printf("%I64d\n",sum); } }
另一题,非常相似,上面的代码给一点点的改动
hdu 2049
#include<stdio.h> #include<math.h> __int64 C(int n,int m) { __int64 u,d,i; if(m>n/2) m=n-m; for(u=d=i=1;i<=m;i++) { u=u*(n-i+1); d=d*i; } return u/d; } main() { int i,M,N,T; __int64 f[21]={1,0,1},sum; for(i=3;i<=20;i++) f[i]=(i-1)*(f[i-1]+f[i-2]); scanf("%d",&T); while(T--) { scanf("%d%d",&N,&M); // for(sum=i=0;i<=N/2;i++) // sum+=C(N,N-i)*f[i]; printf("%I64d\n",C(N,M)*f[M]); } }
相关文章推荐
- hdu-2647 Reward && hdu-2049产生冠军 &&hdu-3342Legal or Not(拓扑排序)
- 【HDU】1133 - Buy the Ticket(BigDecimal & 组合数学 & 递推)
- HDU - 2049 不容易系列之(4)——考新郎 ( 排列组合 错排 )
- hdu2049(组合数学)
- 错排+组合——HDU 2049
- HDU 2049 不容易系列之(4)――考新郎(错排 ,组合)
- HDU 4349 Xiao Ming's Hope 组合数学
- HDU 1799:循环多少次?【dp & 数列组合】
- [ACM] hdu 2049 不容易系列之(4)——考新郎 (组合+错排)
- HDU 5753 Permutation Bo 排列组合& 期望 多校3
- HDU 4390 组合数学&数论
- hdu 2049 错排 娶新娘 排列组合
- hdu-2049-不容易系列之(4)——考新郎(错排+组合)
- HDU 4254 A Famous Game (概率&组合数学公式)
- HDU 2048 2049 (错排,排列组合)
- hdu 1261 排列组合&&大数除法
- 组合数学第二发 错排问题 hdu 2049 + hdu 2068
- 【HDU】1131 - Count the Trees(组合数学 - 卡特兰数 & java)
- <模板>Hdu4869 Turn the pokers 组合数求余 费马小定理
- [HDU 3461] Saving Beans & 组合计数Lucas定理模板