POJ 1942 Paths on a Grid(求组合数)
来源:互联网 发布:淘宝店铺装修托管 编辑:程序博客网 时间:2024/05/13 17:06
POJ 1942 Paths on a Grid
题目大意
给定n,m
(n,m≤232) 求Cnn+m
分析
裸的求组合数的题
原公式是:
不能直接阶乘后做除法会溢出
百度后总结一下求组合数的几种方法(组合数combinatorial number)
1.递推法
可以通过公式:
递推求出,但是对于n太大的情况就不适用了
2.取对数法
为了避免直接计算n的阶乘,对公式两边取对数,于是得到:
通过取对数将连乘转化成了连加
化简一下得到:
之后
3.拆分阶乘
这个方法其实把阶乘拆分成若干分式后用double来做
需要注意的是精度的处理问题
直接看题解了
知道做法后这道题还是挺水的
代码
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<cstdlib>#include<queue>using namespace std;#define uint unsigned intuint Comb(uint n,uint m)//¼ÆËã×éºÏÊý{ uint a=n+m; uint b=min(n,m); double ans=1.0; while(b>0) { ans=ans*((double)(a--)/(double)(b--)); } ans+=0.5; return (uint)ans;}int main(){ uint n,m; while(scanf("%u%u",&n,&m)!=EOF) { if(n==0 && m==0)break; cout<<Comb(n,m)<<endl; }}
0 0
- POJ 1942 Paths on a Grid(求组合数)
- poj 1942 Paths on a Grid (求组合数)
- poj 1942 Paths on a Grid 求组合数mCn的方法
- POJ 1942 Paths on a Grid 组合数
- poj 1942 Paths on a Grid(组合数模板)
- POJ 1942 Paths on a Grid 组合数的优化
- POJ 1942 Paths on a Grid(组合数公式)
- poj-1942-Paths on a Grid【组合数】
- POJ - 1942 D - Paths on a Grid 组合数
- poj 1942 Paths on a Grid(组合数学--组合数)
- poj1942 Paths on a Grid(组合数)
- 组合数的递归调用:poj 1942 Paths on a Grid
- POJ 1942 Paths on a Grid 组合数的应用 (计算路径总个数)
- poj 1942 Paths on a Grid 组合数学
- Paths on a Grid POJ 1942 组合数学
- POJ 1942 Paths on a Grid(组合数学)
- POJ 1942 Paths on a Grid 组合以及处理阶乘
- [ACM] POJ 1942 Paths on a Grid (组合)
- java学习[1]_多线程
- Vue生命周期
- 模糊查询中出现的问题及解决方法
- 1008. 数组元素循环右移问题 (20)
- (一)GUI程序原理分析
- POJ 1942 Paths on a Grid(求组合数)
- 《相关div图层被鼠标点击变色及div图层颜色切换》
- 345. Reverse Vowels of a String
- 十一种通用滤波算法及优缺点
- 1052. Linked List Sorting (25)
- Android笔记—2017-2-6
- mysql分组取值,实现row_number功能
- 易语言透视
- 7 eclipse安装proovy插件