CodeForces 131C--组合数

来源:互联网 发布:js解析嵌套json为数组 编辑:程序博客网 时间:2024/05/06 12:26

题意:

有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;}


0 0