您的位置:首页 > 其它

CodeForces 131C--组合数

2016-07-18 09:32 369 查看
题意:

有n个男生,m个女生分组,一个组t个人,一组至少包含4个男生和1个女生,每个男生或者女生都是不一样的个体,问一共可以构成几

组?

输入:

5 2 5

4 3 5

输出:

10

3

分析:

典型的排列组合问题,分组数=男生分组数 * 女生分组数=(Cn4+Cn5+...Cnn-i)+(Cn1+....Cnn-i)。

代码:#include <bits/stdc++.h>
using namespace std;

long long fun(long long a, long long b) //a男孩女孩数,b是一组需要男或女的人数
{
long long num=1, i;
for(i=1; i<=b; i++)
{
num*=a-i+1;
num /=i; //组合数A54/4!
}
return num;
}
int main()
{
long long n,b,g,i;
while(~scanf("%lld%lld%lld",&b,&g,&n))
{
long long num=0;
for(i=4; i<n; i++)
num+= fun(b,i)*fun(g, n-i); //男孩情况*女孩情况
cout<<num <<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: