poj1942(求组合数)
题目链接: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(求组合数)相关推荐
- 算法刷题-数论-组合数、快速幂、逆元、递推求组合数、逆元求组合数
文章目录 acwing885. 求组合数 I(递推:数据范围:2000) acwing875. 快速幂(a的k次方 模 b) acwing876. 快速幂求逆元 acwing886. 求组合数 II( ...
- 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 ...
- 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)
先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N i ...
- 1100: 求组合数(函数专题)
1100: 求组合数(函数专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 6264 解决: 4653 [提交] [状态] [讨论版] [命题人:admin] 题目描述 马上要举办新生 ...
- ZZULIOJ 1100: 求组合数(函数专题)
求组合数(函数专题) 题目描述 马上要举办新生程序设计竞赛了,与以往不同的是,本次比赛以班为单位,为了全面衡量一个班级的整体水平,要求从一个班的m位同学中任选k位同学代表本班参加比赛,问有多少种组合方 ...
- java实现n选m组合数_求组合数m_n
下面为求取组合数的代码: 1 #include #define MAX 10009 int prime[168]; void print(int *v, int length) { int i = 0 ...
- 求组合数(完善中.......)
1.杨辉三角递推法 void init_trangle() {for(int i = 0; i < 500; i ++){cc[i][0] = cc[i][i] = 1;for(int j = ...
- 求组合数(不同类型的组合数C++)
求组合数有许多种不同的算法,要根据不同的数据量大小选择不同的算法 类型1 给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cba mod(109+7)的值. 输入格式 第一行包含整数 n. ...
- 数学知识—不同数据范围求组合数,例题、思路、代码实现
求组合数1: 题目链接:885. 求组合数 I - AcWing题库 题面: 第一行包含整数 n. 接下来 n 行,每行包含一组 a 和 b. 1<=n<=10000 1<=b< ...
- 算法 - 数学 - 组合数 - 隔板法求组合数
一.求组合数 二.隔板法 隔板法是組合數學的方法,用來處理n個無差別的球放進k個不同的盒子的問題.可一般化為求不定方程的解數,並利用母函數解決問題. 隔板法與插空法的原理一樣. 应用隔板法必须满足3个 ...
最新文章
- redhat 复制文件夹及子文件夹_python文件夹怎么操作呢??(建议详读)
- 受 SQLite 多年青睐,C 语言到底好在哪儿?
- java for循环break_Java中break、continue、return在for循环中的使用
- 开放分布式追踪(OpenTracing)入门与 Jaeger 实现
- 应用程序进程启动过程
- 前排强势围观|云端落地AI,如此超级干货有哪些?
- (四)Maven构建多模块项目
- 【数据结构】分治代码模板
- 编程语言(C语言,JAVA),程序设计,APP开发,算法
- BZOJ1034: [ZJOI2008]泡泡堂BNB
- Prematurely reached end of stream
- 百度引流推广怎么做?个人如何做百度推广
- 华为OD 社招(Java后端)一面
- Django之 Models Manager
- 读《写给大家看的色彩书1》.设计配色基础1
- Qt WA_TranslucentBackground 导致视频渲染不了的问题
- CMake中file的使用
- PM必读|如何成为卓有成效的产品经理
- 计算机二级和三级哪个厉害,计算机等级考试三级都有哪些考哪个比较有用?
- vCenter6.7安装教程
热门文章
- php模拟环境搭建,PHP环境搭建最新方法
- 无失真压缩法可以减少冗余_机考样题(选择题带标准答案).docx
- MISC-BUUCTF-9题-九连环-佛系青年等
- android:layout_width=0.0dip,【教程】状态栏显示网速
- JAVA版游戏下载_我的世界Java版20w51a
- 绵阳python培训_《绵》原文及翻译海绵翻译
- celery4不支持djcelery
- loadrunner中并发数与迭代的区别
- Oracle ROWNUM的陷阱
- Activity之间跳转的效果_overridePendingTransition