列表

详情


NC229271. The World is a Theatre

描述

个男孩和 个女孩在参加一个戏剧俱乐部。 要拍摄一部戏剧“生活大爆炸”,他们需要选择一个包含 个演员的组,其中包含不少于4 个男孩和不少于个女孩。 有多少种选择组的方法?两个组被认为不同,当且仅当两个组中至少有一个人不同。

输入描述

输入第一行包含三个整数

输出描述

输出一个整数表示答案。

示例1

输入:

5 2 5

输出:

10

示例2

输入:

4 3 5

输出:

3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

pypy3 解法, 执行用时: 137ms, 内存消耗: 26228K, 提交时间: 2022-01-14 10:52:01

import math


def C(n: int, m: int) -> int:
    result: int = 1
    for i in range(n, n - m, -1):
        result *= i
    result //= math.factorial(m)
    return result


n, m, t = map(int, input().split())
ans: int = 0
for i in range(4, t):
    ans += C(n, i) * C(m, t - i)
print(ans)

C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 492K, 提交时间: 2022-08-08 21:36:09

#include<bits/stdc++.h>
#define int long long
using namespace std;

int C(int n,int m){
	int res=1;
	for(int i=n;i>=n-m+1;i--) res*=i,res/=n+1-i;
	return res;
}

signed main(){
	int i,n,m,t,ans=0;
	cin>>n>>m>>t;
	for(i=4;i<=t-1;i++) ans+=C(n,i)*C(m,t-i);
	cout<<ans<<endl; 
	return 0;
}

Python3 解法, 执行用时: 42ms, 内存消耗: 8760K, 提交时间: 2022-08-13 15:23:33

import math
n,m,t=map(int,input().split())
sum=0
for i in range(4,t):
    sum+=math.comb(n,i)*math.comb(m,t-i)
print(sum)

上一题