题目链接:http://poj.org/problem?id=1942

题意:实际上这道题就是求C(n+m,n)。

思路:n、m的范围在unsigned中,所以不能递推计算组合数,可以采用公式C(a,b)=a!/(b!*(a-b)!),并且拆分阶乘依次进行除法运算。我在一个地方TLE了半小时,开始怎么也想不通怎么会T,后来发现我的getc函数的形参传递的是int,这样一旦实参是int所不能表示时,传递过来的可能是负数,那么在while循环里就会出现死循环,所以就T了。写代码真的要细心一些啊QAQ。还有一个细节是输入可能出现X 0 (X>0),应该输出1,而不是结束。

AC代码:

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4
 5 unsigned n,m;
 6
 7 unsigned getc(unsigned x,unsigned y){
 8     unsigned a=x+y,b=min(x,y);
 9     double ans=1.0;
10     while(b>0)
11         ans*=(double)(a--)/(double)(b--);
12     ans+=0.5;
13     return (unsigned)ans;
14 }
15
16 int main(){
17     while(~scanf("%u%u",&n,&m),n||m)
18         printf("%u\n",getc(n,m));
19     return 0;
20 }

转载于:https://www.cnblogs.com/FrankChen831X/p/10688953.html

poj1942(求组合数)相关推荐

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

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

  2. 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 ...

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

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

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

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

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

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

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

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

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

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

  8. 求组合数(不同类型的组合数C++)

    求组合数有许多种不同的算法,要根据不同的数据量大小选择不同的算法 类型1 给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cba mod(109+7)的值. 输入格式 第一行包含整数 n. ...

  9. 数学知识—不同数据范围求组合数,例题、思路、代码实现

    求组合数1: 题目链接:885. 求组合数 I - AcWing题库 题面: 第一行包含整数 n. 接下来 n 行,每行包含一组 a 和 b. 1<=n<=10000 1<=b< ...

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

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

最新文章

  1. redhat 复制文件夹及子文件夹_python文件夹怎么操作呢??(建议详读)
  2. 受 SQLite 多年青睐,C 语言到底好在哪儿?
  3. java for循环break_Java中break、continue、return在for循环中的使用
  4. 开放分布式追踪(OpenTracing)入门与 Jaeger 实现
  5. 应用程序进程启动过程
  6. 前排强势围观|云端落地AI,如此超级干货有哪些?
  7. (四)Maven构建多模块项目
  8. 【数据结构】分治代码模板
  9. 编程语言(C语言,JAVA),程序设计,APP开发,算法
  10. BZOJ1034: [ZJOI2008]泡泡堂BNB
  11. Prematurely reached end of stream
  12. 百度引流推广怎么做?个人如何做百度推广
  13. 华为OD 社招(Java后端)一面
  14. Django之 Models Manager
  15. 读《写给大家看的色彩书1》.设计配色基础1
  16. Qt WA_TranslucentBackground 导致视频渲染不了的问题
  17. CMake中file的使用
  18. PM必读|如何成为卓有成效的产品经理
  19. 计算机二级和三级哪个厉害,计算机等级考试三级都有哪些考哪个比较有用?
  20. vCenter6.7安装教程

热门文章

  1. php模拟环境搭建,PHP环境搭建最新方法
  2. 无失真压缩法可以减少冗余_机考样题(选择题带标准答案).docx
  3. MISC-BUUCTF-9题-九连环-佛系青年等
  4. android:layout_width=0.0dip,【教程】状态栏显示网速
  5. JAVA版游戏下载_我的世界Java版20w51a
  6. 绵阳python培训_《绵》原文及翻译海绵翻译
  7. celery4不支持djcelery
  8. loadrunner中并发数与迭代的区别
  9. Oracle ROWNUM的陷阱
  10. Activity之间跳转的效果_overridePendingTransition