[AcWing]885. 求组合数 I(C++实现)求组合数模板题
[AcWing]885. 求组合数 I(C++实现)求组合数第一种题型模板题
- 1. 题目
- 2. 读题(需要重点注意的东西)
- 3. 解法
- 4. 可能有帮助的前置习题
- 5. 所用到的数据结构与算法思想
- 6. 总结
求组合数有很多种题型,我们需要根据输入的数据的范围来选哪种方式,具体的方式有如下几种:
主要是询问次数和数据大小的不同,对应了不同的解法
此外,另有高精度组合数和卡特兰数两种特例
1. 题目
2. 读题(需要重点注意的东西)
思路:
首先,要知道组合数是什么?公式是什么?
一般地,从a个不同的元素中,任取b(b≤a)个元素为一组,叫作从aa个不同元素中取出b个元素的一个组合,这个组合一共有多少组?
公式如下:
可以推出
(先取出1个元素,这个元素可能在b中,可能不在,所以有如下两种可能)
3. 解法
---------------------------------------------------解法---------------------------------------------------
#include <iostream>
#include <algorithm>using namespace std;const int N = 2010, mod = 1e9 + 7;int c[N][N];void init()
{for (int i = 0; i < N; i ++ )for (int j = 0; j <= i; j ++ )if (!j) c[i][j] = 1; // 如果j为0else c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
}int main()
{int n;init();scanf("%d", &n);while (n -- ){int a, b;scanf("%d%d", &a, &b);printf("%d\n", c[a][b]);}return 0;
}
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
- 组合数
6. 总结
求组合数第一种题型的模板题,理解思路并背下代码。
[AcWing]885. 求组合数 I(C++实现)求组合数模板题相关推荐
- ACM-组合数学完全总结(知识点+模板)
目录 排列 1.1不可重排列 1.2可重排列 1.3圆排列 1.4不尽相异元素全排列 1.5多重集的排列 组合 2.1不可重组合数 2.2可重组合 2.3不相邻组合 2.4多重集的组合 2.5常用组合 ...
- [AcWing]827. 双链表(C++实现)双链表模板题
[AcWing]827. 双链表(C++实现)双链表模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 1. 题 ...
- python判断质数合数奇数偶数_Python 判断合数质数
Python 判断合数质数 首先明确合数和质数的概念 合数: 自然数中除了能被 1 和本身整除之外, 还能被其他的数整除的数(4,6,9,10...)defheshu(m): list_a=[] fo ...
- [AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题
[AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算 ...
- 相约2008:2008是一个合数,求出此合数最多由多少个最小不同质数和组成, 并按要求从小到大输出这些质数
提示: 代码存在问题,这里找出 2008 最多由多少个不同的质数和组成,原先的思路是从最小开始入数组,直到总和大于2008,然后开始剔除,但是这种方法不对 这里为了方便考虑,可以试着将 2008 替换 ...
- 一个数如果除了 1 和自己还有其他约数,则称为一个合数。例如:1, 2, 3 不是合数,4, 6 是合数。 请问从 1 到 2020 一共有多少个合数
一个数如果除了 1 和自己还有其他约数,则称为一个合数.例如:1, 2, 3 不是合数,4, 6 是合数. 请问从 1 到 2020 一共有多少个合数(java) public static void ...
- [AcWing] 9. 分组背包问题(C++实现)分组背包问题模板题
[AcWing] 9. 分组背包问题(C++实现)分组背包问题模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 ...
- AcWing 885. 求组合数 I(递推式预处理)
题面连接 https://www.acwing.com/problem/content/887/ 思路 通过组合数学的知识我们能知道Cab=Ca−1b+Ca−1b−1C_a^b = C_{a-1}^b ...
- AcWing 888. 求组合数 IV(高精度求组合数问题)
题面连接 https://www.acwing.com/problem/content/890/ 思路 因为要用到高精度,那我们直接使用python就好,如果不使用python,那么我们可以将a!a! ...
最新文章
- 一首考研人不得不看的立志诗!!!!!!
- [以太坊源代码分析]III. 挖矿和共识算法的奥秘
- Vivado无法双击打开xpr工程文件的解决办法
- c语言 宏教程 pdf,C语言之详解_ifdef等宏.pdf
- 织梦内容管理系统(DedeCMS)
- 开源oa_圈子哥推荐一款基于 Spring Boot 开发 OA 开源产品,学习/搞外快都是不二选择!...
- 把区块链作为核心技术自主创新重要突破口:华为云可以做什么?【华为云分享】
- centos 管理记录(二)
- python访问excel的类_Python实现的Excel文件读写类
- 计算机维修技能训练,计算机维护维修技能训练指导书【参考】.doc
- 三款200万像素照相手机测评
- 如何将JavaScript转化成Swift?(二)
- 操作系统服务:OS模块
- 没有编程基础可以学python_没有任何编程基础可以直接学习python语言吗?学会后能够做什么?...
- 南阳oj-----Binary String Matching(string)
- java axis_Java 使用Axis实现WebService实例
- 如何利用净推荐值(NPS)测量用户忠诚度?
- Word 打印 PrintOut 方法
- matlab condest,Matlab关于几个函数
- 六种礼仪帮助你赢得面试