• 【noip 2016】组合数问题


    【题目描述】

     

    【输入格式】

       从文件中读入数据。

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

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

    【输出格式】

      输出到文件中。

       t行,每行一个整数代表所有的0<=i<=n,0<=j<=min(i,m)中有多少对(i, j)满足C(j,i)是k的倍数。 

    【样例1输入】

    1 2
    3 3
    

    【样例1输出】

    1

    【提示】

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

    【样例2输入】

    2 5
    4 5
    6 7
    

    【样例2输出】

    0
    7

    【来源】

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 #define maxn 2005
     6 using namespace std;
     7 long long t,n,m,k,f[maxn][maxn],s[maxn][maxn];
     8 int main(){
     9     scanf("%lld%lld",&t,&k);
    10     for(int i=0;i<2000;i++)f[i][i]=1,f[i][0]=1;
    11     for(int i=1;i<=2000;i++)
    12         for(int j=1;j<i;j++)
    13             f[i][j]=(f[i-1][j-1]+f[i-1][j])%k;
    14     for(int i=1;i<=2000;i++)
    15         for(int j=1;j<=2000;j++){
    16             s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1];
    17             if(f[i][j]==0&&j<=i) s[i][j]++;
    18         }
    19     for(int i=1;i<=t;i++){
    20         long long ans=0;
    21         scanf("%lld%lld",&n,&m);
    22         printf("%lld
    ",s[n][m]);
    23     }
    24     return 0;
    25 }
  • 相关阅读:
    Web前段学习索引
    Python学习索引
    Centos7下安装Docker(详细的新手教程)
    Django部署阿里云服务器(nginx+uwsgi)
    (转)Mongo db 与mysql 语法比较
    (转)mongo基本常用命令
    python操作mongodb的基本操作命令
    http响应码
    python回调函数
    Flask框架的使用
  • 原文地址:https://www.cnblogs.com/Emine/p/7645359.html
Copyright © 2020-2023  润新知