HDOJ(HDU) 2519 新生晚会(组合公式)

简介: HDOJ(HDU) 2519 新生晚会(组合公式)

Problem Description

开学了,杭电又迎来了好多新生。ACMer想为新生准备一个节目。来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?


Input

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

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


Output

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


Sample Input

5

3 2

5 3

4 4

3 6

8 0


Sample Output

3

10

1

0

1


就是组合公式的应用!

c(n,m) = n!/(n-m)!/m!;


注意!此题用long可能会过不了、

不过如果你在算乘的时候去除的话,应该是可以过的。

我在这里是用double过的。

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt();
        while(t-->0){
            int n =sc.nextInt();
            int m=sc.nextInt();
            double num = group(n,m);
            System.out.printf("%.0f",num);
            System.out.println();
        }
    }
    private static double group(int n, int m) {
        if(m>n){
            return 0;
        }
        if(m==0){
            return 1;
        }
        int h=n-m;
        if(n-m>m){
            h=m;
            m=n-m;
        }
        double s=1;
        for(int i=n;i>=m+1;i--){
            s*=i;
        }
        double k=1;
        for(int i=1;i<=h;i++){
            k*=i;
        }
        return s/k;
    }
}
目录
相关文章
HDOJ(HDU) 2519 新生晚会(组合公式)
Problem Description 开学了,杭电又迎来了好多新生。ACMer想为新生准备一个节目。来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法? Input 数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。
977 0
|
9月前
日拱一卒,月进一步(6)(杨辉三角2)
119. 杨辉三角 II - 力扣(LeetCode)
61 0
|
机器学习/深度学习 人工智能 BI
“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp,K,二分+排序,L,矩阵快速幂,M,线段树区间更新+Lazy思想,N,超级快速幂+扩展欧里几德,O
黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个像素点或者是黑色的或者是白色的。
1368 0
【每日一道智力题】之海盗分金币(上)
【每日一道智力题】之海盗分金币(上)
298 0
|
8月前
|
机器学习/深度学习 人工智能
PTA之N个数求和(细节题)天梯赛
编程题,要求计算以分子/分母形式给出的一组有理数的和,输出结果也要是最简有理数形式。输入包含正整数N(N≤100)及N个有理数,输出为和的最简形式。示例:输入5个数2/5, 4/15, 1/30, -2/60, 8/3,输出3 1/3;输入2个数4/3, 2/3,输出2。代码中包含求最大公约数的函数和计算有理数和的主要逻辑。
74 0
|
Web App开发
[家里蹲大学数学杂志]第394期分组求积分因子法
在第 2.3 节中, 我们已经知道, 对 $$\bee\label{ode} M(x,y)\rd x+N(x,y)\rd y=0 \eee$$而言,   1. 若 $M_y=N_x$, 则 \eqref{ode} 为恰当 ode, 而可通过求解 pde 组 $$\bex u_x=M,\quad u_y=N \eex$$ 求出 $u$, 而 \eqref{ode} 的通解为 $u=C$.
924 0
|
Java
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
176 0
|
存储 算法 容器
天梯赛二阶题——L2-015 互评成绩(25 分)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
377 0
天梯赛二阶题——L2-015 互评成绩(25 分)
|
8月前
|
搜索推荐 算法 C++
蓝桥杯分糖果、最小化战斗力差距、小蓝零花钱
这是一个关于算法问题的集合,包括三个不同的任务: 1. **分糖果**:肖恩有不同种类的糖果要分给学生,目标是使得到糖果字符串的字典序最大且尽量小。给定糖果种类数和一个初始字符串,输出能达到的最小字典序的最大值。 2. **最小化战斗力差距**:小蓝需要将队员分为两组,每组战斗力差距最小。给定队员数量和战斗力值,找出最小的战斗力差距。 3. **小蓝的零花钱**:小蓝要在序列中分割偶数和奇数,每次分割代价是两端元素差的绝对值。目标是在预算内确定最多能进行多少次这样的分割。 每个问题都提供了输入输出示例和相应的C++代码片段来解决这些问题。
|
机器学习/深度学习 存储 算法
《算法日记-玩出新花样》- 两数求和
《算法日记-玩出新花样》- 两数求和
190 0
《算法日记-玩出新花样》- 两数求和

热门文章

最新文章