JZOJ5371 组合数问题
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一毛一样.
// It is made by XZZ
// Fei Fan Ya Xi Lie~~~
#include<cstdio>
#include<algorithm>
using namespace std;
#define il inline
#define rg register
#define vd void
typedef long long ll;
il int gi(){
rg int x=0,f=1;rg char ch=getchar();
while(ch<'0'||ch>'9')f=ch=='-'?-1:f,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*f;
}
int S[2001][2001],B[2001][2001];
int main(){
// freopen("2583.in","r",stdin);
// freopen("2583.out","w",stdout);
S[0][0]=1;
int T=gi(),k=gi();
for(rg int i=1;i<2001;++i){
for(rg int j=1;j<=i;++j)
S[i][j]=(S[i-1][j]*j+S[i-1][j-1])%k;
}
B[0][0]=S[0][0]%k==0;
for(rg int i=1;i<2001;++i){
B[i][0]=B[i-1][0]+(S[i][0]%k==0);
for(rg int j=1;j<=i;++j)
B[i][j]=B[i-1][j]+B[i][j-1]-B[i-1][j-1]+(S[i][j]%k==0);
for(rg int j=i+1;j<2001;++j)B[i][j]=B[i][j-1];
}
int i,j;
while(T--){
i=gi(),j=gi();
printf("%d\n",B[i][j]);
}
return 0;
}
JZOJ5371 组合数问题的更多相关文章
- 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 ...
- 计算一维组合数的java实现
背景很简单,就是从给定的m个不同的元素中选出n个,输出所有的组合情况! 例如:从1到m的自然数中,选择n(n<=m)个数,有多少种选择的组合,将其输出! 本方案的代码实现逻辑是比较成熟的方案: ...
- Noip2016提高组 组合数问题problem
Day2 T1 题目大意 告诉你组合数公式,其中n!=1*2*3*4*5*...*n:意思是从n个物体取出m个物体的方案数 现给定n.m.k,问在所有i(1<=i<=n),所有j(1< ...
- C++单元测试 之 gtest -- 组合数计算.
本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...
- NOIP2011多项式系数[快速幂|组合数|逆元]
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- AC日记——组合数问题 落谷 P2822 noip2016day2T1
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...
- 【板子】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 ...
- 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理
4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 95 Solved: 33[Submit][Statu ...
- UOJ263 【NOIP2016】组合数问题
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
随机推荐
- 转:iBatis简单入门教程
iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足 ...
- [翻译] EAIntroView
EAIntroView https://github.com/ealeksandrov/EAIntroView This is highly customizable drop-in soluti ...
- CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
CVE-2013-2551漏洞成因与利用分析 1. 简介 VUPEN在Pwn2Own2013上利用此漏洞攻破了Win8+IE10,5月22日VUPEN在其博客上公布了漏洞的细节.它是一个ORG数组整数 ...
- robotFramework--ride 问题:Data source does not exist.
第一次安装robotFramework,运行时提示Data source does not exist.最后发现是在Arguments这一栏误输入了. 导致的,去掉.后就可以正常运行了.
- pandas高级操作总结
1.pandas中的列的分位数 # 查看列的分位数 import pandas as pd # set columns type my_df['col'] = my_df['col'].astype( ...
- Oracle SQL Developer官方工具 初探
查询表数据(打开工作表:Alt+F10) 运行SQL语句:(格式化:Ctrl+F7) 自动完成语句的设置 自动弹出的速度加快,并且将命中率提高,进行如下设置: 由于我的输入法占用了CTRL+,的快捷建 ...
- SQLServer------查询结果为空的列赋默认值
ISNULL(字段,默认值) 如:SELECT ISNULL(name,'无名') FROM [User]
- php添加mongo模块
可以从 http://pecl.php.net/package/mongo 下载目前的stable稳定版 我添加的是mongo-1.5.2.tgz # wget http://pecl.php.net ...
- 洛谷 P2045 方格取数加强版【费用流】
题目链接:https://www.luogu.org/problemnew/show/P2045 题目描述 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现 ...
- 1059. [ZJOI2007]矩阵游戏【二分图】
Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行 ...