Problem Description
开学了,杭电又迎来了好多新生。ACMer想为新生准备一个节目。来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?
Input
数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。
每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)
Output
每组数据输出一个整数,每个输出占一行
Sample Input
5
3 2
5 3
4 4
3 6
8 0
Sample Output
3
10
1
0
1
方法一: 为防止溢出,可以采用乘一个除一个的方法。
View Code

#include<stdio.h>int main(){    __int64 i,n,m,sum;int t;while(scanf("%d",&t)!=EOF)while(t--)    {        scanf("%I64d%I64d",&n,&m);if(n<m)            printf("0\n");else if(m==0)            printf("1\n");else         {            sum=1;for(i=1;i<=n-m;i++)                sum=sum*(m+i)/i;            printf("%I64d\n",sum);        }    }return 0;}

方法二: 利用公式 C(n,m)=C(n-1,m)+C(n-1,m-1)  打表。
View Code

#include<stdio.h>#include<string.h>int main(){int a[31][31];int i,j,t,n,m;    memset(a,0,sizeof(a));    a[0][0]=a[1][1]=a[1][0]=1;for(i=2;i<=30;i++)for(j=0;j<=i;j++)            a[i][j]=a[i-1][j]+a[i-1][j-1];while(scanf("%d",&t)!=EOF)while(t--)        {            scanf("%d%d",&n,&m);if(n<m)                printf("0\n");else if(m==0)                printf("1\n");else                 printf("%d\n",a[n][m]);        }return 0;}

转载于:https://www.cnblogs.com/dream-wind/archive/2012/04/06/2434939.html

HDU 2519 新生晚会【求组合数】相关推荐

  1. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)

    先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N i ...

  2. 1100: 求组合数(函数专题)

    1100: 求组合数(函数专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6264 解决: 4653 [提交] [状态] [讨论版] [命题人:admin] 题目描述 马上要举办新生 ...

  3. ZZULIOJ 1100: 求组合数(函数专题)

    求组合数(函数专题) 题目描述 马上要举办新生程序设计竞赛了,与以往不同的是,本次比赛以班为单位,为了全面衡量一个班级的整体水平,要求从一个班的m位同学中任选k位同学代表本班参加比赛,问有多少种组合方 ...

  4. 算法 - 数学 - 组合数 - 隔板法求组合数

    一.求组合数 二.隔板法 隔板法是組合數學的方法,用來處理n個無差別的球放進k個不同的盒子的問題.可一般化為求不定方程的解數,並利用母函數解決問題. 隔板法與插空法的原理一樣. 应用隔板法必须满足3个 ...

  5. 算法刷题-数论-组合数、快速幂、逆元、递推求组合数、逆元求组合数

    文章目录 acwing885. 求组合数 I(递推:数据范围:2000) acwing875. 快速幂(a的k次方 模 b) acwing876. 快速幂求逆元 acwing886. 求组合数 II( ...

  6. Codeforces Round #361 (Div. 2) E. Mike and Geometry Problem 【逆元求组合数 离散化】

    任意门:http://codeforces.com/contest/689/problem/E E. Mike and Geometry Problem time limit per test 3 s ...

  7. java实现n选m组合数_求组合数m_n

    下面为求取组合数的代码: 1 #include #define MAX 10009 int prime[168]; void print(int *v, int length) { int i = 0 ...

  8. HDU2519 新生晚会【组合计算】

    新生晚会 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. 求组合数(完善中.......)

    1.杨辉三角递推法 void init_trangle() {for(int i = 0; i < 500; i ++){cc[i][0] = cc[i][i] = 1;for(int j = ...

最新文章

  1. LINUX中printf与echo的区别
  2. GitHub 上值得关注的 iOS 开源项目
  3. Java问题解决:Java compiler level does not match the version of the installed Java project facet....
  4. LeetCode 55. 跳跃游戏 中等难度
  5. 用宏定义实现函数值互换
  6. jzoj3918-蛋糕【二分】
  7. 第一百零九期:双十一光棍节调试一个商城必备功能,Java Springboot开源秒杀系统
  8. android pss内存,如何释放android系统中pss cache住的内存
  9. 更换锁定计算机图片,电脑锁屏图片怎么设置
  10. HTTP权威指南记录 ---- HTTP报文
  11. 190305每日一句
  12. Android--线程详解
  13. mmp格式转换_mmp是什么意思
  14. 传统网络通信模式、RDMA技术、InfiniBand协议、IB卡(IB交换机)之间的关系?
  15. Python-Curses模块
  16. 机器学习知识点全面总结
  17. jenkins报错hudson.plugins.git.GitException: Could not init /root/.jenkins/workspace/DeployOrder/order
  18. 详解Pytorch中的requires_grad、叶子节点与非叶子节点、with torch.no_grad()、model.eval()、model.train()、BatchNorm层
  19. NBA常规赛总三分排行榜(数据截止至11年4月14日)
  20. 2014年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】

热门文章

  1. TemplateBuilder
  2. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
  3. MBProgressHUD 使用详解
  4. 基于Idea从零搭建一个最简单的vue项目
  5. 校验正确获取对象或者数组的属性方法(babel-plugin-idx/_.get)
  6. 揭秘vue——vue-cli3全面配置
  7. SharePoint Server 2013 之四:部署SharePoint企业版
  8. 4、jQuery实现的全选、反选和不选功能
  9. 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)
  10. 基于流式的md5计算-多线程下载工具Lwget介绍