AcWing 523. 组合数问题
组合数 Cmn 表示的是从 n 个物品中选出 m 个物品的方案数。
举个例子,从 (1, 2, 3) 三个物品中选择两个物品可以有 (1, 2), (1, 3), (2, 3) 这三种选择方法。
根据组合数的定义,我们可以给出计算组合数 Cmn 的一般公式:
其中 n! = 1 × 2 × · · · × n 。
小葱想知道如果给定 n, m 和 k ,对于所有的 0 ≤ i ≤ n, 0 ≤ j ≤ min(i, m) 有多少对 (i, j) 满足 Cji 是 k 的倍数。
输入格式
第一行有两个整数 t, k ,其中 t 代表该测试点总共有多少组测试数据,k 的意义见问题描述。
接下来 t 行每行两个整数 n, m ,其中 n, m 的意义见问题描述。
输出格式
共 t 行,每行一个整数代表所有的 0 ≤ i ≤ n, 0 ≤ j ≤ min(i, m) 有多少对 (i, j) 满足 Cji 是 k 的倍数。
数据范围
n,m≤2000,2≤k≤21,t≤10^4
输入样例:
1 2
3 3
输出样例:
1
代码如下:
#include <iostream>
using namespace std;
const int N = 2010;
int c[N][N],s[N][N];int main()
{int cnt = 0,k = 0;cin>>cnt>>k;for (int i = 0;i<N;i++)for (int j = 0;j<=i;j++){if (!j) c[i][j] = 1%k;else c[i][j] = (c[i-1][j]+c[i-1][j-1])%k;if (!c[i][j]) s[i][j] = 1;}for (int i = 0;i<N;i++)for (int j = 0;j<N;j++){if(i) s[i][j] +=s[i-1][j];if (j) s[i][j] +=s[i][j-1];if (i&&j) s[i][j] -=s[i-1][j-1];}while(cnt--){int n,m;cin>>n>>m;cout<<s[n][m]<<endl;}return 0;
}
AcWing 523. 组合数问题相关推荐
- AcWing蓝桥杯AB组辅导课10、疑难杂题
文章目录 前言 例题1:AcWing 1242. 修改数组(并查集) 分析 题解:单链表式并查集 例题2:AcWing 1234. 倍数问题(背包问题+贪心) 分析 题解1:01背包问题,三维解法(贪 ...
- AcWing 870. 约数个数(唯一分解+组合数)
题目链接 https://www.acwing.com/problem/content/872/ 思路 我们将每一个数进行一个唯一分解后,对于每一个质因子我们统计一下数量,假设我们已经记录到了每一个质 ...
- AcWing 1309. 车的放置 (加法原理、乘法原理、组合数排列数的求法、乘法逆元)
1309. 车的放置 分步做:先放上面的矩形,后考虑下面的矩形. 分类做:依次求出,上面放置 0 . 1 . 2 . - - . k 0.1.2.--.k 0.1.2.--.k个车的,而下面放置 k ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂
文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 快速幂参考笔者的这篇博文: 算法刷题-数论-组合数.快速幂.逆元.递推求组合数.逆元求组合数 约数之和参考笔者的这篇博文: 算法刷题 ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 95. 费解的开关:位运算、枚举、递推
文章目录 题目解答 题目来源 题目解答 分析: 枚举第一行,指的是第一行哪些位置要切换状态!!!.第一行总共有5个数,组合数是32,即第一行哪些位置要切换总共有32种情况.这就是我们的枚举空间.比如, ...
- CSP认证 201312-4有趣的数[C++题解]:组合数、数学
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 题目要求:n位数,只能放0,1,2,3:0必须在1前面,2必须在3前面:0不能放在首位. 由于0和1有限制关系,2和3有限制关系,所 ...
- Acwing 1082. 数字游戏
Acwing 1082. 数字游戏 题意: 现在大家决定玩一个游戏,指定一个整数闭区间 [a,b],问这个区间内有多少个不降数. 题解: 利用数位dp的套路来做 我们还是利用前缀和来做 我们先求1~n ...
- 洛谷、牛客网、AcWing 刷题(python版)
牛客网python专项练习整理(一) https://blog.csdn.net/weixin_41913008/article/details/87203468 牛客网剑指offer--python ...
- AcWing基础算法课Level-2 第四讲 数学知识
AcWing基础算法课Level-2 第四讲 数学知识 您将学会以下数学名词 质数,试除法,埃式筛法,线性筛,辗转相除,算术基本定理,质因数分解,欧拉函数,快速幂,费马小定理,逆元,拓展欧几里得,一次 ...
最新文章
- Binder相关面试总结(五):为什么Activity间传递对象需要序列化
- Python之sort()函数详解
- 使用Pandas进行变量衍生
- 深入浅出,Spring 框架和 Spring Boot 的故事
- Struts2中<s:iterator>基本用法及示例
- oracle迁移至gaussdb,GaussDB for DWS 数据融合系列第九期:Oracle数据迁移到GaussDB(DWS)...
- 【机器学习算法应用和学习_1】1.1 机器学习框架
- 30款硬盘有问题 细看希捷固件门事件.
- Frequency domain enhancement
- java中怎么保留小数_java怎么保留小数
- SQL Server数据库学习总结及T-SQL语法使用实战
- java 数组声明并初始化_Java数组的声明与初始化
- Maplab系列15:Inverted File
- html导航页面转换,纯CSS实现导航栏Tab切换效果
- 一文看懂网络安全五年之巨变
- 7-1 电话聊天狂人 (25分) PTA 数据结构
- 交换机链路聚合在网络中的作用
- 强大的矩阵奇异值分解(SVD)及其应用
- 对于雷诺数,你了解多少?
- 软件测试中常见的几种模型