【问题描述】
定义"组合数"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.
【输入格式】
从 problem.in 种读入数据
第一行有两个整数 t,k,t 代表该测试点总共有多少组测试数据.
接下来 t 行,每行两个整数 n,m.
【输出格式】
输出到文件 problem.out 中
t 行,每行一个整数代表所有的 0<=i<=n,0<=j<=min(i,m),有多少对(i,j),满足 S(i,j)
是 k 的倍数.
【样例输入 1】
12
33
【样例输出 1】
3
【样例说明 1】
S(1,0),S(2,0),S(3,0)均是 2 的倍数
【样例输入 2】
25
45
67
【样例输出 2】
4
12
【数据规模与约定】
对于 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

斯特林数(II)

S[i][j]=S[i-1][j-1]+j*S[i-1][j]

解释一下:

对于i,j,它可以单独构成j集合,前面要有j-1个集合

也可以放入前面的集合

因为集合非空,所以前面的集合要有j个,有j种选择

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int k,t,n,m;
long long S[][],a[][];
int main()
{int i,j;
cin>>t>>k;
S[][]=;
for (i=;i<=;i++)
{
S[i][]=;
for (j=;j<=i;j++)
{
S[i][j]=(S[i-][j-]+S[i-][j]*j)%k;
}
}
for (i=;i<=;i++)
{
for (j=;j<=i;j++)
{
if (S[i][j]==)
a[i][j]=;
}
}
for (i=;i<=;i++)
{
for (j=;j<=;j++)
a[i][j]+=a[i][j-];
}
for (i=;i<=;i++)
{
for (j=;j<=;j++)
a[i][j]+=a[i-][j];
}
while (t--)
{
scanf("%d%d",&n,&m);
printf("%lld\n",a[n][m]);
}
}

组合数问题(zyys版)的更多相关文章

  1. AcWing 214. Devu和鲜花 (容斥)打卡

    Devu有N个盒子,第i个盒子中有AiAi枝花. 同一个盒子内的花颜色相同,不同盒子内的花颜色不同. Devu要从这些盒子中选出M枝花组成一束,求共有多少种方案. 若两束花每种颜色的花的数量都相同,则 ...

  2. [Leetcode 39]组合数的和Combination Sum

    [题目] Given a set of candidate numbers (candidates) (without duplicates) and a target number (target) ...

  3. xdoj-1106(判断组合数是否溢出)

    1 首先 ans=c(n,a[0] )*c(n-a[0],a[1])*(n-a[0]-a[1],a[2])...... a[i]: 含义 在数列中i的个数有a[i]个 2 如何判断 x*y>p( ...

  4. Luogu P2290 [HNOI2004]树的计数 Prufer序列+组合数

    最近碰了$prufer$ 序列和组合数..于是老师留了一道题:P2624 [HNOI2008]明明的烦恼 qwq要用高精... 于是我们有了弱化版:P2290 [HNOI2004]树的计数(考一样的可 ...

  5. 浙大版《C语言程序设计(第3版)》题目集 --总结

    浙大版<C语言程序设计(第3版)>题目集 此篇博客意义为总结pta上浙大版<C语言程序设计(第3版)>题目集所做题目的错误点,心得体会. 1.练习2-10 计算分段函数[1] ...

  6. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  7. jQuery实践-网页版2048小游戏

    ▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...

  8. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  9. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

随机推荐

  1. C语言的第 次作业总结

    PTA实验作业 第一题: 使用函数输出水仙花数 1.设计思路: 2.碰到的问题及解决方法: 实验中碰到的主要问题是:虽然知道如何求每一位的数但不知道如何输出m到n之间的水仙花数,我上面截图中的和瓮恺视 ...

  2. win7下,使用django运行django-admin.py无法创建网站

    安装django的步骤: 1.安装python,选择默认安装在c盘即可.设置环境变量path,值添加python的安装路径. 2.下载ez_setup.py,下载地址:http://peak.tele ...

  3. Beta冲刺Day3

    项目进展 李明皇 今天解决的进度 完善了程序的运行逻辑(消息提示框等) 明天安排 前后端联动调试 林翔 今天解决的进度 向微信官方申请登录验证session以维护登录态 明天安排 继续完成维护登录态 ...

  4. Linux之用户与用户组

    1.Linux是一种 多用户多任务分时操作系统. 2.Linux的用户只有两个等级:root用户和非root用户.   Linux系统默认 内置了root用户 和一些非root用户,如nobody,a ...

  5. 不看就亏了:DELL EqualLogic PS6100详解及数据恢办法

    DELL EqualLogic PS6100采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性,支持VMware.Solaris.Linu ...

  6. PHP环境手动搭建wamp-----Apache+MySQL+PHP

    首先下载分别下载Apache+MySQL+PHP. 然后分别解压到文件夹中. 1.安装Apache 1)检查80端口是否占用 说明:apache软件占用80软件,在计算机中一个端口只能被一个软件占用 ...

  7. OpenShift实战(二):OpenShift节点扩容

    1.新增节点信息 增加节点如下,请将xxx改为自己的域名 node6.xxx.net Node 192.168.8.90 8G 20G/60G 4C node7.xxx.net Node 192.16 ...

  8. 自己造轮子系列之OOM框架AutoMapper

    [前言] OOM框架想必大家在Web开发中是使用频率非常之高的,如果还不甚了解OOM框架,那么我们对OOM框架稍作讲解. OOM顾名思义,Object-Object-Mapping实体间相互转换.常见 ...

  9. RxJava系列1(简介)

    RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...

  10. DOM节点删除之empty和remove区别

    要移除页面上节点是开发者常见的操作,jQuery提供了几种不同的方法用来处理这个问题,这里我们开仔细了解下empty和remove方法 empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只 ...