【NOIP2016】组合数问题

Description

Input

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

Output

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

Sample Input

输入1:
1 2
3 3

输入2:
2 5
4 5
6 7

Sample Output

输出1:
1

输出2:
0
7

Hint

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

输出范围:

Source

NOIP2016 ,数学, 杨辉三角

解析

这题看上去确实很难做哈。

毕竟这数据范围。。

但实际上,我们完全可以利用杨辉三角预处理出组合数模k的值,

这样只要模k为0就是k的倍数了。

然后再O(2000*2000)记录下次数就能O(1)回答了。

上AC代码:

#include <bits/stdc++.h>
#define ll long long
using namespace std;int t,k,m,n;
int f[2002][2002],a[2002][2002];int main(){scanf("%d%d",&t,&k);for(int i=0;i<=2000;i++){f[i][0]=1%k;}for(int i=1;i<=2000;i++){for(int j=1;j<=i;j++){f[i][j]=(ll)(f[i-1][j]+f[i-1][j-1])%k;}}/*计算杨辉三角模k的值*/if(!f[0][0]) a[0][0]=1;for(int i=1;i<=2000;i++){a[i][0]=a[i-1][0]+(f[i][0]==0);for(int j=0;j<i;j++){a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+(f[i][j]==0);//如果值为0就是k的倍数
        }a[i][i]=a[i][i-1]+(f[i][i]==0);for(int j=i+1;j<=2000;j++) a[i][j]=a[i][i];}/*预处理计数*/for(int i=1;i<=t;i++){scanf("%d%d",&n,&m);printf("%d\n",a[n][m]);//O(1)回答
    }return 0;
}

转载于:https://www.cnblogs.com/zsq259/p/10458722.html

题解 【NOIP2016】组合数问题相关推荐

  1. [NOIP2016] 组合数问题

    题目描述 组合数CnmC_n^mC​n​m​​表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组 ...

  2. [NOIP2016]组合数问题

    题目描述: 题目链接: UOJ 263 http://uoj.ac/problem/263 题目背景: NOIP2016 提高组 Day2 T1 组合数 表示的是从 n 个物品中选出 m 个物品的方案 ...

  3. CSP认证 201312-4有趣的数[C++题解]:组合数、数学

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 题目要求:n位数,只能放0,1,2,3:0必须在1前面,2必须在3前面:0不能放在首位. 由于0和1有限制关系,2和3有限制关系,所 ...

  4. noip2016 组合数问题

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

  5. 第十三届蓝桥杯模拟赛(第二期)试题与题解 C++

    第十三届蓝桥杯模拟赛(第二期)试题与题解 1.试题A [问题描述] ​ 小蓝的IP地址为 192.168. * .21,其中 * 是一个数字,请问这个数字最大可能是多少 ? 题解 IP地址由四个字节组 ...

  6. luoguP1600 天天爱跑步(NOIP2016)(主席树+树链剖分)

    阅读体验: https://zybuluo.com/Junlier/note/1303550 为什么这一篇的Markdown炸了? # 天天爱跑步题解(Noip2016)(桶+树上差分 ^ 树剖+主席 ...

  7. 语法入门*算法入门题单

    作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...

  8. 【新手上路】语法入门算法入门题单

    作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...

  9. bzoj5368 [Pkusc2018]真实排名

    题目描述: bz luogu 题解: 组合数计数问题. 首先注意排名指的是成绩不小于他的选手的数量(包括他自己). 考虑怎么增大才能改变排名. 小学生都知道,对于成绩为$x$的人,让他自己不动并让$\ ...

  10. “Shopee杯” e起来编程暨武汉大学2020年大学生程序设计大赛决赛(重现赛)

    比赛链接 文章目录 A题 A Simple Problem about election 题目描述 题解: 代码: D题 Deploy the medical team 题意: 题解: 代码: F题 ...

最新文章

  1. Nature Communications:实时记录神经系统,解开大脑秘密
  2. 新浪api 40022错误
  3. ConcurrentHashMap的源码分析-扩容结束以后的退出机制
  4. 使用#传递参数防御SQL注入攻击
  5. Leet Code OJ 235. Lowest Common Ancestor of a Binary Search Tree [Difficulty: Easy]
  6. mysql not in 转化_[转]mysql里not in语句怎么写 | 学步园
  7. springboot全局常量_Spring-Boot配置属性和环境变量的加载顺序
  8. dsp怪胎_我是如何发现内心怪胎的
  9. boost::date_time时间类的使用
  10. Word,PDF,PPT,TXT之间的转换方法(
  11. html网页设计课程心得,终于发现学习网页设计心得体会
  12. 带你彻底弄明白!java简历模板下载
  13. sas macro 入门
  14. 全球十大外汇交易平台2020最新排名
  15. 模型保存文件.npy
  16. c语言对称矩形的判定,江苏省扬州市仪征市2017年中考数学一模试卷(含解析).doc...
  17. mysql查看cpu使用高sql语句_MYSQL CPU 使用率高,怎么查,怎么破
  18. 23_STM32调试和下载:SW配置
  19. 【openGL】安装篇(上):Windows
  20. 国家计算机职业技能鉴定4级考试内容详解

热门文章

  1. finereport连接oracle_FINEREPORT连接远程ORACLE数据库
  2. python 多进程 requests_python多进程(二)
  3. php的echo 和 return的区别
  4. 【Java Web开发指南】Java插入中文到数据库中文变成问号解决
  5. python【Matlibplot绘图库】基本使用(真の能看懂~!)
  6. python【数据结构与算法】对python抽象的再探索(看不懂你来打我)
  7. python列表知识点_Python列表List基础知识点总结
  8. linux重做引导分区,linuxgrub 0.97三重引导,基本无解,除非重做硬盘
  9. oracle取_后的数字,聊聊四种Oracle数字取整函数
  10. java数据库视图工具_数据库视图工具类