题目链接

题目大意:给定$n,m,k$,求满足$k|C_i^j$的$C_i^j$的个数。$(0\leq i\leq n,1\leq j\leq \min(i,m))$。

----------------

关于组合数的递推不难想到。简略证明一下。

证明:$C_i^j=C_{i-1}^j+C_{i-1}^{j-1}$。

$  C_{i-1}^j+C_{i-1}^{j-1}$

$=\frac{(i-1)!}{j!(i-j-1)!}+\frac{(i-1)!}{(j-1)!(i-j)!}$

$=\frac{(i-1)!*(i-j)}{j!*(i-j)!}+\frac{(i-1)!*j}{j!(i-j)!}$

$=\frac{(i-1)!*(j+i-j)}{j!*(i-j)!}$

$=\frac{i!}{j!(i-j)!}$

$=C_i^j$

递推出的结果再$mod k$就可以拿到90分了,大部分人考场上就可以过了,有时间可以再深究一下。

满分还要有一个递推式:$ans[i][j]=ans[i-1][j]+ans[i][j-1]-ans[i-1][j-1]$。打表可以得到。

注意边界。时间复杂度$O(n^2)$。$O(1)$查询。

代码:

#include<bits/stdc++.h>
using namespace std;
long long c[][],ans[][];
int k,n,m,t;
int main()
{
scanf("%d%d",&t,&k);
c[][]=c[][]=;c[][]=;
for (int i=;i<=;i++)
{
c[i][]=;
for (int j=;j<=i;j++)
{
c[i][j]=(c[i-][j-]+c[i-][j])%k;
ans[i][j]=ans[i-][j]+ans[i][j-]-ans[i-][j-];
if (!c[i][j]) ans[i][j]++;
}
ans[i][i+]=ans[i][i];
}
while(t--)
{
scanf("%d%d",&n,&m);
if (m>n)printf("%lld\n",ans[n][n]);
else printf("%lld\n",ans[n][m]);
}
return ;
}

【NOIP2016】组合数问题 题解(组合数学+递推)的更多相关文章

  1. 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it

    http://acm.hdu.edu.cn/showproblem.php?pid=6129 [题意] 对于一个长度为n的序列a,我们可以计算b[i]=a1^a2^......^ai,这样得到序列b ...

  2. 【CSP2019】括号树 题解(递推+链表)

    前言:抽时间做了做这道题,把学长送退役的题. ----------------- 题目链接 题目大意:定义$()$是合法括号串.如果$A,B$是合法括号串,那么$(AB),AB$为合法括号串.现给定根 ...

  3. 【HNOI2011】数学作业 题解(递推+矩阵快速幂)

    题目链接 题目大意:求$1-n$所拼接起来的数$mod\ m$的值. ----------------------------------- 递推式子很好想:$f_i=f_{i-1}*10^{\lg ...

  4. Light oj 1095 - Arrange the Numbers (组合数学+递推)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1095 题意: 给你包含1~n的排列,初始位置1,2,3...,n,问你刚好固定 ...

  5. UVA 861 组合数学 递推

    题目链接 https://vjudge.net/problem/UVA-861 题意: 一个国际象棋棋盘,‘象’会攻击自己所在位置对角线上的棋子.问n*n的棋盘 摆放k个互相不攻击的 '象' 有多少种 ...

  6. 洛谷 P6031 - CF1278F Cards 加强版(推式子+递推)

    洛谷题面传送门 u1s1 这个推式子其实挺套路的吧,可惜有一步没推出来看了题解 \[\begin{aligned} res&=\sum\limits_{i=0}^ni^k\dbinom{n}{ ...

  7. 小红的难题<递推>

    题意:五个数:N,x,y,A,B;N是台阶总数,x,y是每步可以走x或者y步,但是一定要走到A,B台阶上. 思路:学长给的题解,递推,稍微优化一点. >重点在递推 #include<cst ...

  8. 51nod1149 Pi的递推式

    基准时间限制:1 秒 空间限制:131072 KB 分值: 640 F(x) = 1 (0 <= x < 4) F(x) = F(x - 1) + F(x - pi) (4 <= x ...

  9. HDU 5366 dp 递推

    The mook jong Accepts: 506 Submissions: 1281 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...

随机推荐

  1. Linux下diff命令用法详解

    大家好,我是良许. 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点.在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也 ...

  2. Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车

    让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商 ...

  3. 攻防世界FlatScience

    访问robots.txt发现 admin.php和login.php 在admin.php和login.php分别尝试注入 发现login.php页面存在注入,并且根据报错得知数据库类型为sqlite ...

  4. 基于svg的环形进度条

    其实需求是这么一个基于日期的环形进度条,开始用css3写了一下感觉太麻烦了,于是抽了点时间用svg画了一个. 不多说 上代码: css: <style> circle { -webkit- ...

  5. 使用Azure Application Insignhts监控ASP.NET Core应用程序

    Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查 ...

  6. bzoj2456mode

    bzoj2456mode 题意: 给你一个n个数的数列,求出现次数超过n div 2的数(只有1个). 题解: 注意空间只有1M,显然不能开数组.用两个变量,一个存“当前数”,另一个存“当前数”的个数 ...

  7. (5)webpack中url-loader的使用

    为什么要使用url-loader 在前面已经介绍了css文件可以使用第三方loader去加载. 在一个项目中,也不仅仅只有html,js和css文件,还有图片文件,字体文件等等.当我们给一个css样式 ...

  8. Illegal instant due to time zone offset transition (Asia/Shanghai)_夏令时问题

    项目报错信息: Connot parse "1991-04-14",illegal instant due to time zone offset transition(Asia/ ...

  9. Mysql报Too many connections,不要乱用ulimit了,看看如何正确修改进程的最大文件数

    背景 今天在学习mysql时,看到一个案例,大体来说,就是客户端报Too many connections.但是,客户端的连接池,限制为了200,两个客户端java进程,那也才400,然后mysql配 ...

  10. 最小割&网络流应用

    重要链接 基础部分链接 : 二分图 & 网络流初步 zzz大佬博客链接 : 网络流学习笔记 重点内容:最小割二元关系新解(lyd's ppt) 题目:网络流相关题目 lyd神犇课件链接 : 网 ...