Binomial Coeffcients 山东省第二届ACM省赛 G题
2015-04-06 10:38
295 查看
题目链接:点击打开链接
Binomial Coeffcients
好吧,第一眼看到这个题目直觉是想到大数阶乘+大数乘法+大数除法+大数取余。。。。。。
仔细一想觉得不太可能,这也太麻烦了
然后就发现这是个组合数。。。(高中数学不好。。)
然后就想到了组合数打表,但是不行,数据太大爆表了。。。。。
最后干脆在C(n,k)=C(n-1,k-1)+C(n-1,k)后面加上了一个取余,心想不是报表么,这样就不会爆了吧,
也不管成不成立,直接就提交了,没想到还真A了。。。。。。
后来仔细一想不就是取余符号的加法分配率么。。。。。。汗啊。。这么简单。。。
Binomial Coeffcients
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
3 1 1 10 2 954 723
示例输出
1 45 3557658
提示
来源
山东省第二届ACM大学生程序设计竞赛好吧,第一眼看到这个题目直觉是想到大数阶乘+大数乘法+大数除法+大数取余。。。。。。
仔细一想觉得不太可能,这也太麻烦了
然后就发现这是个组合数。。。(高中数学不好。。)
然后就想到了组合数打表,但是不行,数据太大爆表了。。。。。
最后干脆在C(n,k)=C(n-1,k-1)+C(n-1,k)后面加上了一个取余,心想不是报表么,这样就不会爆了吧,
也不管成不成立,直接就提交了,没想到还真A了。。。。。。
后来仔细一想不就是取余符号的加法分配率么。。。。。。汗啊。。这么简单。。。
#include <iostream> using namespace std; int ncount = 0; int cmob[1001][1001]; void ccmob() { int i,j; cmob[0][0] = 1; for(i = 1; i <= 1000;i++) {cmob[i][1] = i;cmob[i][0] = 1;} for(i = 2;i <= 1000;i++) for(j = 1;j <=i;j++) cmob[i][j] = (cmob[i-1][j-1] + cmob[i-1][j]) % 10000003; } int main() { int c,m,k; ccmob(); cin >> c; while(c--) { cin >> m >> k; cout << cmob[m][k] << endl; } return 0; }
相关文章推荐
- 山东省第二届ACM省赛 Identifiers
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
- 山东省第二届ACM省赛 Binomial Coeffcients(组合数学)
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- sdut2165 Crack Mathmen (山东省第二届ACM省赛)
- sdut 2161 Simple Game(山东省第二届acm省赛A题)(博弈论Nim+Bush?)
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- 山东省第二届ACM省赛 I - Sequence
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
- 山东省第二届ACM省赛 F题 Manhattan 解题报告
- 山东第二届省赛回顾 Binomial Coeffcients
- 山东第二届省赛回顾 Binomial Coeffcients
- sdut2165 Crack Mathmen (山东省第二届ACM省赛)
- 山东省第二届ACM省赛 The Android University ACM Team Selection Contest
- 山东省第二届ACM省赛 Mathmen
- 2014山东省第五届ACM省赛 Full Binary Tree
- 山东省第二届ACM省赛题——The Android University ACM Team Selection Contest
- 2015山东省第六届ACM省赛 Nias and Tug-of-War