列表

详情


NC200469. ACM协会晚会

描述

ACM协会的会员越来越多了,训练量也越来也大,为使会员们在高强度的训练下得到放松,会员之间更加亲近,协会想为会员们准备一个晚会,晚会节目由会员们表演。
消息一出,报名要表演节目的会员很多,多达N个,尤其是才华横溢的史老师,点名要上台唱毛不易的《消愁》,但是由于场地和时间有限,只能从这N个人中选M个,请你帮会长算一算,一共有多少种选择方法?

输入描述

数据的第一行是一个正整数T,接下来有T组数据,每组数据占一行。

每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)。

输出描述

每组数据输出一个整数,每个输出占一行。

示例1

输入:

5
3 2
5 3
4 4
3 6
8 0

输出:

3
10
1
0
1

原站题解

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

C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 368K, 提交时间: 2019-12-24 20:30:44

#include<stdio.h>
#include<math.h>
int main()
{
	int t;
	scanf("%d",&t);
	int n,m,i,j;
	long long c;
	for(j=0; j<t; j++)
	{
		scanf("%d %d",&n,&m);
		for(i=1,c=1; i<=m; i++)
		{
			c=c*(n+1-i)/i;
		}
		printf("%d\n",c);
	}
	return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 376K, 提交时间: 2019-12-21 14:45:27

#include<iostream>
using namespace std;
int main()
{
	int t;
	scanf("%d",&t); 
	for(int m,n;t--;cout<<endl)
	{
		cin>>m>>n;
		long long s=1;
		for(int i=1;i<=n;i++)s*=m-i+1,s/=i;
		cout<<s;
	}
}

Python3 解法, 执行用时: 42ms, 内存消耗: 5080K, 提交时间: 2022-12-10 19:39:45

zs = int(input())
import math
for i in range(zs):
    n,m = map(int,input().split())
    if n>=m:
        print(math.comb(n,m))
    else:
        print(0)

上一题