zoukankan      html  css  js  c++  java
  • noip 2016 day2 t1组合数问题

    题目描述

    组合数表示的是从n个物品中选出m个物品的方案数。举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法。根据组合数的定 义,我们可以给出计算组合数的一般公式:

    其中n! = 1 × 2 × · · · × n

    小葱想知道如果给定n,m和k,对于所有的0 <= i <= n,0 <= j <= min(i,m)有多少对 (i,j)满足是k的倍数。

    输入输出格式

    输入格式:

    第一行有两个整数t,k,其中t代表该测试点总共有多少组测试数据,k的意义见 【问题描述】。

    接下来t行每行两个整数n,m,其中n,m的意义见【问题描述】。

    输出格式:

    t行,每行一个整数代表答案。

    输入输出样例

    输入样例#1:
    1 2
    3 3
    输出样例#1:
    1
    输入样例#2:
    2 5
    4 5
    6 7
    输出样例#2:
    0
    7
    

    说明

    【样例1说明】

    在所有可能的情况中,只有是2的倍数。

    【子任务】

    C

    组合数的递推式

    f[i][j]=f[i-1][j-1]+f[i-1][j]

    n个物品中取m个物品,若不取这个物品,则从n-1,m推过来,若取这个物品则从n-1,m-1推过来。

    详见数学课本选修2—3

    然后做一个预处理

    ans[i][j]=ans[i-1][j]+h[i];

    表示n为i,m为j是的总方案数

    #include<cstdio>
    
    const int N=2006;
    
    long long f[N][N],h[N]; 
    long long ans[N][N],n,m,k,t;
    
    
    void chushi()
    {
        f[0][0]=1;
        for(int i=1;i<=2000;i++)
        {   
            f[i][0]=1;
            for(int j=1;j<=i;j++)//(a+b)%c=((a%c)+(b%c))%c;
            {
                f[i][j]=(f[i-1][j-1]%k+f[i-1][j]%k)%k;
                if(f[i][j]==0)
                {
                    h[i]++;
                }
                ans[i][j]=ans[i-1][j]+h[i]; 
                if(j==i) ans[i][j]=h[i]+ans[i-1][j-1]; 
            }
        }
    }
    
    inline int min(int x,int y)
    {
        if(x<y)return x;
        return y;
    }
    
    int main()
    {
        scanf("%d%d",&t,&k);
        chushi();
        for(int i=1;i<=t;i++)
        {
            scanf("%d%d",&n,&m); 
            m=min(n,m);
            printf("%d
    ",ans[n][m]);
        }
        return 0;
    }
  • 相关阅读:
    MFC tab页面中获到其它页面的数据
    sqlite数据库中"Select * From XXX能查到数据,但是Select DISTINCT group From xxx Order By group却查不出来
    关闭程序出现崩溃(exe 已触发了一个断点及未加载ucrtbased.pdb)
    springboot 通用Mapper使用
    springBoot 发布war包
    springCloud Zuul网关
    springboot hystrix turbine 聚合监控
    springBoot Feign Hystrix Dashboard
    springBoot Ribbon Hystrix Dashboard
    springBoot Feign Hystrix
  • 原文地址:https://www.cnblogs.com/sssy/p/6889976.html
Copyright © 2011-2022 走看看