Description

定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.

举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3},{1,2})三种拆分方法.

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

注意,0 也是k 的倍数,S(0,0)=1,对于i>=1,S(i,0)=0.

Input

第一行有两个整数t,k,t 代表该测试点总共有多少组测试数据.接下来t 行,每行两个整数n,m.

Output

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

Sample Input

输入1:

1 2

3 3

输入2:

2 5

4 5

6 7

Sample Output

输出1:

3

样例说明1:S(1,0),S(2,0),S(3,0)均是2 的倍数

输出2:

4

12

Hint

Data Constraint

对于20%的数据,满足n,m<=7,k<=5

对于60%的数据,满足n,m<=100,k<=10

对于每个子任务,都有50%的数据满足t=1

对于100%的数据,满足1<=n<=2000,1<=m<=2000,2<=k<=21,1<=t<=10000

666实力模仿NOIP,,,我那个时候不会杨辉三角QwQ

因为集合是无序的,所以可以推出S的转移方程:

\(S[i][j]=S[i-1][j]*j+S[i-1][j-1]\)

也就是第i个元素可以新开一个集合单独放,也可以放在以前开的一个集合中.

剩下的和NOIP一毛一样.

  1. // It is made by XZZ
  2. // Fei Fan Ya Xi Lie~~~
  3. #include<cstdio>
  4. #include<algorithm>
  5. using namespace std;
  6. #define il inline
  7. #define rg register
  8. #define vd void
  9. typedef long long ll;
  10. il int gi(){
  11. rg int x=0,f=1;rg char ch=getchar();
  12. while(ch<'0'||ch>'9')f=ch=='-'?-1:f,ch=getchar();
  13. while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
  14. return x*f;
  15. }
  16. int S[2001][2001],B[2001][2001];
  17. int main(){
  18. // freopen("2583.in","r",stdin);
  19. // freopen("2583.out","w",stdout);
  20. S[0][0]=1;
  21. int T=gi(),k=gi();
  22. for(rg int i=1;i<2001;++i){
  23. for(rg int j=1;j<=i;++j)
  24. S[i][j]=(S[i-1][j]*j+S[i-1][j-1])%k;
  25. }
  26. B[0][0]=S[0][0]%k==0;
  27. for(rg int i=1;i<2001;++i){
  28. B[i][0]=B[i-1][0]+(S[i][0]%k==0);
  29. for(rg int j=1;j<=i;++j)
  30. B[i][j]=B[i-1][j]+B[i][j-1]-B[i-1][j-1]+(S[i][j]%k==0);
  31. for(rg int j=i+1;j<2001;++j)B[i][j]=B[i][j-1];
  32. }
  33. int i,j;
  34. while(T--){
  35. i=gi(),j=gi();
  36. printf("%d\n",B[i][j]);
  37. }
  38. return 0;
  39. }

JZOJ5371 组合数问题的更多相关文章

  1. LCM性质 + 组合数 - HDU 5407 CRB and Candies

    CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...

  2. 计算一维组合数的java实现

    背景很简单,就是从给定的m个不同的元素中选出n个,输出所有的组合情况! 例如:从1到m的自然数中,选择n(n<=m)个数,有多少种选择的组合,将其输出! 本方案的代码实现逻辑是比较成熟的方案: ...

  3. Noip2016提高组 组合数问题problem

    Day2 T1 题目大意 告诉你组合数公式,其中n!=1*2*3*4*5*...*n:意思是从n个物体取出m个物体的方案数 现给定n.m.k,问在所有i(1<=i<=n),所有j(1< ...

  4. C++单元测试 之 gtest -- 组合数计算.

    本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...

  5. NOIP2011多项式系数[快速幂|组合数|逆元]

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  6. AC日记——组合数问题 落谷 P2822 noip2016day2T1

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

  7. 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数

    1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exgcd(l ...

  8. 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 95  Solved: 33[Submit][Statu ...

  9. UOJ263 【NOIP2016】组合数问题

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

随机推荐

  1. swift中变量的几种类型

    swift中变量的几种类型 swift中变量分为 optional,non-optional 以及 implicitly unwrapped optional 这几种类型 var nullablePr ...

  2. python安装lib库

    time:2015/11/11 双十一 一.初衷 看到一篇帖子[1],里面有python代码,就想实现一下,代码如下: import cv2 as cv import numpy as np from ...

  3. Linux 环境部署记录(二) - NFS文件共享

    NFS文件共享服务 假设现有两台服务器IP地址分别为 192.168.0.2 和 192.168.0.3,192.168.0.2作为Server,192.168.0.3为Client,则: 两台机器都 ...

  4. 程序员减少代码BUG的7种方法,拒绝编程5分钟,查代码2小时!

    0.别对警告视而不见 相信不少的程序员会使用IDEA,使用它敲代码,有时候会出现警告,那么这时你对警告就不能视而不见了. 我们的目标是,写干净的代码,做风一样的男子! 1.编程习惯 种瓜得瓜种豆得豆, ...

  5. 面对对象程序设计_task2_1001.A+B Format (20)

    Someting about 1001.A+B Format (20) 问题描述及我所写的代码:click here → My Task 看到这个题目的时候,我的想法很简单,直接判断直接输出,因为给定 ...

  6. Weblogic 设置优先引用web项目的jar包

    在WEB-INF/weblogic.xml中进行如下配置: <container-descriptor> <prefer-web-inf-classes>true</pr ...

  7. jquery与json的结合

    通过AJAX异步减少网络内容传输,而JSON则可以把传输内容缩减到纯数据:然后利用jQuery内置的AJAX功能直接获得JSON格式的数据:在客户端直接绑定到数据控件里面,从而达到最优. 1 2 3 ...

  8. 51nod 1444 破坏道路(bfs+枚举)

    1444 破坏道路 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 在某一个国家,那儿有n个城市,他们通过m条双向 ...

  9. 1068. [SCOI2007]压缩【区间DP】

    Description 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息.压缩后的字符串除了小 写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上 ...

  10. 【洛谷】【堆+贪心】P1484 种树

    [题目描述:] cyrcyr今天在种树,他在一条直线上挖了n个坑.这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树.而且由于cyrcyr的树种不够,他至多会种 ...