题目链接: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代码:

 #include<cstdio>
#include<algorithm>
using namespace std; unsigned n,m; unsigned getc(unsigned x,unsigned y){
unsigned a=x+y,b=min(x,y);
double ans=1.0;
while(b>)
ans*=(double)(a--)/(double)(b--);
ans+=0.5;
return (unsigned)ans;
} int main(){
while(~scanf("%u%u",&n,&m),n||m)
printf("%u\n",getc(n,m));
return ;
}

poj1942(求组合数)的更多相关文章

  1. lucas求组合数C(n,k)%p

    Saving Beans http://acm.hdu.edu.cn/showproblem.php?pid=3037 #include<cstdio> typedef __int64 L ...

  2. URAL 1994 The Emperor's plan 求组合数 大数用log+exp处理

    URAL 1994 The Emperor's plan 求组合数 大数用log #include<functional> #include<algorithm> #inclu ...

  3. N!分解质因子p的个数_快速求组合数C(n,m)

    int f(int n,int p) { ) ; return f(n/p,p) + n/p; } https://www.xuebuyuan.com/2867209.html 求组合数C(n,m)( ...

  4. 求组合数、求逆元、求阶乘 O(n)

    在O(n)的时间内求组合数.求逆元.求阶乘.·.· #include <iostream> #include <cstdio> #define ll long long ;// ...

  5. HDU 5852 Intersection is not allowed!(LGV定理行列式求组合数)题解

    题意:有K个棋子在一个大小为N×N的棋盘.一开始,它们都在棋盘的顶端,它们起始的位置是 (1,a1),(1,a2),...,(1,ak) ,它们的目的地是 (n,b1),(n,b2),...,(n,b ...

  6. hdu 2519 求组合数

    求组合数 如果求C5 3 就是5*4*3/3*2*1 也就是(5/3)*(4/2)*(3/1) Sample Input5 //T3 2 //C3 25 34 43 68 0 Sample Outpu ...

  7. 求组合数 C++程序

    一 递归求组合数 设函数为void    comb(int m,int k)为找出从自然数1.2.... .m中任取k个数的所有组合. 分析:当组合的第一个数字选定时,其后的数字是从余下的m-1个数中 ...

  8. HDU 5698——瞬间移动——————【逆元求组合数】

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

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

  10. 51nod1119(除法取模/费马小定理求组合数)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶- 思路:这题数据比较大直接暴力肯定是不 ...

随机推荐

  1. taotao商城

    (1)写Dao层(大概是sqlMapConfig.xml,application-dao.xml,mapper), 配置顺序和内容,看下图:

  2. 如何在notepad++实现代码自动化排版(调用Astyle)

    我先介绍这个怎么在notepad++中调用原版的astyle的方法. 在notepad++:运行或是F5, 在输入框中选择astyle.exe所在的目录,什么你没有astyle,下载地址https:/ ...

  3. C++中多态中构造函数与析构函数的调用

    做个实验,看一下成员变量的构造析构,父类子类的构造析构,以及虚函数对调用的影响. #include <iostream> using namespace std; class Member ...

  4. J2SE 8的流库 --- 生成流

    本文介绍了如何产生J2SE 8的流, 包括基本类型的流IntStream, LongStream, DoubleStream . 展现流的方法 public static <T> void ...

  5. day01-MySQL介绍

    一.MySQL的介绍 1.1.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 W ...

  6. UI5-学习篇-10-本地UI5应用发布到SAP前端服务器

    1.本地UI5应用发布 点击项目名,右键Deploy,Deploy to Sapui5 ABAP Repository 选择SAP系统连接名,发布或是更新应用 注意上图中,SAPUI5应用版本与选择的 ...

  7. C++复习:对C的拓展

    简单的C++程序 求圆的周长和面积 数据描述:             半径,周长,面积均用实型数表示 数据处理:         输入半径 r:         计算周长 = 2*π*r :     ...

  8. 将应用部署到Tomcat根目录下

    方法一:(最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下. 方法二: 删除原webapps/ROOT 目录下的所有文件,修改文 ...

  9. delphi 大文件的读写 使用 MapviewOffile

    unit filemap; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  10. 【原】Ubuntu virtual terminal

    CTRL+ALT+F1 ~ F6 six virtual terminal ALT-F7 return to graphic desktop