zoukankan      html  css  js  c++  java
  • (银联复赛)爱喝「肥宅快乐水」的班长

    题目描述

    现在已经是暑假了!这周日,码队的弟弟所在的班级——上海某中学高二 33 班的同学们准备在码队弟弟的带领下(码队的弟弟是这个班的班长),举办一场派对。

    码队的弟弟让两名同学打开手机 「云闪付」app,在云闪付在线商城上采购饮料。经过这两名同学统计,发现一共需要买 nn 瓶饮料。而在云闪付在线商城上,一共有 mm 种不同的饮料(包括「肥宅快乐水」,并假设云闪付在线商城上的每种饮料的购买数量都没有限制)。由于码队的弟弟喜欢喝「肥宅快乐水」,所以这两名同学决定至少要买一瓶「肥宅快乐水」。

    这样看来,饮料购买的方案实在是太多了!两位同学突发奇想,想让你帮忙计算:总共有多少种购买饮料的方案。(答案对 10^9 + 7109+7 取模,同种饮料都是一样的,不作区分。)

    输入格式

    有多组数据。

    第一行输入一个整数 TT, 表示有 TT 组数据( 1le T le 10^41≤T≤104 )。

    对于每一组测试数据:输入一行,包含两个整数 n, mn,m,以空格分隔,分别表示这两位同学需要买 nn 瓶饮料(其中必须有一瓶是「肥宅快乐水」),云闪付在线商城中一共有 mm 种包括「肥宅快乐水」在内的不同的饮料。(1 le n,m le 10^31≤n,m≤103)

    输出格式

    对于每一组测试数据,输出一行。

    每行只包含一个整数,表示有多少种购买饮料的方案。

    提示

    假设我们用 FF 表示「肥宅快乐水」,用 AA 表示某种其他饮料。

    
针对样例输入 1:

    
对于第一组测试数据,只有 11 种购买饮料的方案:(FF)。


    对于第二组测试数据,有 22 种购买饮料的方案:(FF, FF),(FF, AA)。

    输出时每行末尾的多余空格,不影响答案正确性

    样例输入1复制

    2
    1 1
    2 2

    样例输出1复制

    1
    2

    样例输入2复制

    3
    1 2
    2 3
    3 3

    样例输出2复制

    1
    3
    6

    隔板法

    由于高中的知识都忘差不多了

    所以复习一下隔板法

    n个球分成m组如何分

    n个球显然有n-1个空,我们只需要就计算将m-1个隔板放插入空中即可

    #include<cstdio>
    #include<iostream>
    using namespace std;
    long long fac[2005];
    long long inv[2005];
    const long long mod=1000000007;
    long long q_pow(long long a,long long b)
    {
        long long ans=1;
        while(b)
        {
            if(b&1) ans=(ans*a)%mod;
            a=(a*a)%mod;
            b/=2;
        }
        return ans;
    }
    
    int main()
    {
        int t;
        fac[0]=1;
        for(long long i=1;i<=2000;i++)
        {
            fac[i]=(fac[i-1]*i)%mod;
            //cout<<fac[i]<<mod-2<<endl;
            inv[i]=q_pow(fac[i],1000000005);
    
        }
        scanf("%d",&t);
        while(t--)
        {
            int n,m;
            scanf("%d%d",&n,&m);
            if(n==1||m==1) printf("%d
    ",1);
            else
            {
                long long ans;
                ans=fac[m+n-2]*inv[m-1]%mod*inv[n-1]%mod;
                printf("%lld
    ",ans);
            }
        }
    }
    
  • 相关阅读:
    什么是 bean 的自动装配?
    什么是 Spring 的内部 bean?
    什么是 Spring 的 MVC 框架?
    Spring AOP and AspectJ AOP 有什么区别?
    解释 JDBC 抽象和 DAO 模块?
    volatile 类型变量提供什么保证?
    一个 Spring Bean 定义 包含什么?
    什么是 Spring MVC 框架的控制器?
    使用 Spring 访问 Hibernate 的方法有哪些?
    什么是 Callable 和 Future?
  • 原文地址:https://www.cnblogs.com/caowenbo/p/11852219.html
Copyright © 2011-2022 走看看