省赛来了
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
-
一年一度的河南省程序设计大赛又要来了。
竞赛是要组队的,组队形式:三人为一队,设队长一名,队员两名。
现在问题就来了,给你m个人,要求每队n个人,求共有几种不同的组队方式。
(题目保证m%n等于0,所有数据不超出int范围)
- 输入
- 多组测试数据,以EOF结束。
每组测试数据输入两个整数m,n。 - 输出
- 对每组测试数据输出不同组队方式的数量(考虑到输出的数可能会很大,所以请输出对2013取余后的值),并在输出结束之后输入一个换行符。
- 样例输入
-
4 2
- 样例输出
-
6
- 来源
- NYIST校赛选拔赛
- 上传者
思路:这样想 从4个里面选2个 再从剩下的里面选2个
C(4,2) +C(2,2) 一直把人选完
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ac(int n) { if(n==1||n==0) return 1; return n*ac(n-1); } int main() { int a,b; while(cin>>a>>b) { int t=a/b; int n=a; int sum=1; int cnt; // cout<<t<<endl; while(t--) { cnt=(ac(n)/(ac(b)*ac(n-b))); sum*=cnt; n-=b; } cout<<sum%2013<<endl; } }