poj--1306 Combinations(组合数)
2016-05-27 23:09
423 查看
poj 1306
根据二项式系数公式:
(nm)=(n−1m)+(n−1m−1)
直接递推求解。
题意
计算组合数 (nm)题解
没有取模又需要求精确解,阶乘计算不得,逆元求不得。根据二项式系数公式:
(nm)=(n−1m)+(n−1m−1)
直接递推求解。
#include <iostream> #include <cstdio> using namespace std; typedef long long ll; const int maxn = 100 + 10; struct Solution{ ll c[maxn][maxn]; int n, m; void read(int _n, int _m){ n = _n, m = _m; } Solution():n(0), m(0){ dp(); } void dp(){ for(int i = 0; i < maxn; ++i) c[i][0] = 1; for(int i = 1; i < maxn; ++i){ for(int j = 1; j < maxn; ++j) c[i][j] = c[i - 1][j] + c[i - 1][j - 1]; } } void solve(){ printf("%d things taken %d at a time is %I64d exactly.\n", n, m, c [m]); } }; int main() { int n, m; Solution s; while(cin >> n >> m && (n || m)){ s.read(n, m); s.solve(); } return 0; }
相关文章推荐
- 微软Word 2007数学插件 Microsoft Math 提供下载
- 关于C# Math 处理奇进偶不进的实现代码
- JavaScript Math 对象常用方法总结
- JavaScript中的Math.SQRT1_2属性使用简介
- JavaScript Math.ceil() 函数使用介绍
- 与Math.pow 相反的函数使用介绍
- JavaScript中使用指数方法Math.exp()的简介
- JavaScript使用Math.Min返回两个数中较小数的方法
- Ajax获取页面被缓存的解决方法
- JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
- JavaScript中Math对象使用说明
- javascript对象之内置对象Math使用方法
- 基于java math API 的详细解释说明
- 简介JavaScript中用于处理正切的Math.tan()方法
- 浅谈JavaScript中的Math.atan()方法的使用
- PHP内置的Math函数效率测试
- 在JavaScript中使用对数Math.log()方法的教程
- JavaScript中用于四舍五入的Math.round()方法讲解
- 简介JavaScript中Math.LOG10E属性的使用
- 在javascript中随机数 math random如何生成指定范围数值的随机数