个人学习笔记平台,欢迎大家交流

红叶~

Be humble, communicate clearly, and respect others.

随笔分类 -  算法学习

摘要:算法分类 1、排序 比较类排序 2、复杂度 相关概念 稳定:如果 a 本来在 b 前面,而a = b ,排序之后 a 仍然在 b 的前面 不稳定:如果 a 本来 在b的前面,而 a = b ,排序之后 a 可能在 b 的后面 时间复杂度:对排序数据的总的操作数,反映当 n 变化时,操作次数呈什么变化 阅读全文
posted @ 2024-09-10 16:41 红叶~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要:模拟散列表 把一个较大范围内的数转化为较小范围的数的集合。 模上一个数(x%N+N)%N防止下标出现负数 数据结构 用一个数组表示要插入的槽,如果哈希产生了冲突,则把数插入到槽中(单链表)。 数组+模拟链表 拉链法 实现代码: #include<cstring> #include<iostream> 阅读全文
posted @ 2024-09-10 16:41 红叶~ 阅读(15) 评论(0) 推荐(0) 编辑
摘要:容器一些基本操作语法 vector 初始化操作 vector<int> a; //声明向量 vector<int> a(10); //声明一个初始大小为10 的向量 vector<int> a(10,1); //初始大小为10,且值都为 1的向量 vector<int> b(a); //声明并用向量 阅读全文
posted @ 2024-09-10 15:53 红叶~ 阅读(13) 评论(0) 推荐(0) 编辑
摘要:算法笔记 欧几里得算法求最大公约数 ~又称辗转相除法,求两数的最大公约数 gcd(a,b) = gcd(b,a%b) 一般代码递归形式 int gcd(int a,int b) { return b? gcd(b,a%b) :a ; } 迭代形式 int gcd(int a,int b) { whi 阅读全文
posted @ 2024-09-10 15:53 红叶~ 阅读(16) 评论(0) 推荐(0) 编辑
摘要:KMP KMP-字符串匹配算法,pat模式串,长度为M; txt文本串,长度为N。KMP算法是在txt中查找子串pat,如果存在,返回起始索引,否则返回-1 。 https://zhuanlan.zhihu.com/p/83334559这个知乎专栏讲得很好 根据上面的理解 1、如果是暴力枚举的话,就 阅读全文
posted @ 2024-09-10 15:38 红叶~ 阅读(27) 评论(0) 推荐(0) 编辑
摘要:1、分解质因数 #include<iostream> #include<cmath> #include<cstring> using namespace std; int main() { int n; cin >> n; while(n--) { int x; cin >> x; for(int 阅读全文
posted @ 2022-07-06 20:41 红叶~ 阅读(66) 评论(0) 推荐(0) 编辑
摘要:刷题记录 AcWing 1117. 单词接龙 (DFS,搜索顺序) AcWing 1116. 马走日 AcWing 190. 字串变换 小猫爬山 2549. 估计人数(蓝桥杯国赛) 阅读全文
posted @ 2022-03-07 20:52 红叶~ 阅读(20) 评论(0) 推荐(0) 编辑
摘要:树状数组 树状数组:O(logn) 操作:1、给某个位置上的数加上一个数 (单点修改) 2、求某一个前缀和 (区间查询) 支持修改和查询同时进行,是在线的 树状数组下标 所在的层次:x的二进制最后有几个0 C[x]表示的数的范围:\((x - 2 ^k, x] = (x - lowbit(x), x 阅读全文
posted @ 2022-03-06 16:13 红叶~ 阅读(35) 评论(0) 推荐(0) 编辑
摘要:A.双阶乘 问题描述 一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。 n 的双阶乘用 n!! 表示。 例如: 3!! = 3 × 1 = 3。 8!! = 8 × 6 × 4 × 2 = 384。 11!! = 11 × 9 × 7 × 5 × 3 × 1 = 1039 阅读全文
posted @ 2022-03-04 13:43 红叶~ 阅读(46) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/hulean/p/11144059.html 洛谷模板题 题目:最近公共祖先LCA LCA,最近公共祖先是指在有根树中,找出某两个结点uv 最近的公共祖先。 怎么求? 当要求两个结点的LCA,我们可以先让这两个结点跳到同一 阅读全文
posted @ 2022-03-02 15:14 红叶~ 阅读(36) 评论(0) 推荐(0) 编辑
摘要:记忆化搜索是DFS+动态规划的一种搜索算法,在进行动态规划的同时我们也记录递归过的状态,这样就避免了重复递归搜索,即在递归的同时记录已更新状态.。 例题 AcWing901 滑雪 阅读全文
posted @ 2022-03-01 20:17 红叶~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要:【思路】由于完全平方公式a2b2=(a+b)(ab)=c,假设 d 可以拆分成这样的平方差,c+b2=a2。 假设a+b 都大于 c 了,而ab又不可能小于1,所以ab不能大于c。这样我们就可以缩小遍历的范围了。 阅读全文
posted @ 2022-02-26 17:54 红叶~ 阅读(51) 评论(0) 推荐(0) 编辑
摘要:Flood Fill 通过初始的一个位置,覆盖该位置周围有关联的格子, 可以在线性时间复杂度内,找到某个点所在的连通块 题目 池塘计数 城堡问题 山峰和山谷 最短路模型 计算到达某个位置需要的最短步数、最短路径 使用BFS第一次搜到目标的结果就是最短的,只要遍历从该点出发的所有情况,且进行标记判重, 阅读全文
posted @ 2022-02-25 12:03 红叶~ 阅读(109) 评论(0) 推荐(0) 编辑
摘要:【动态规划 | 树形DP小结】 参考:RioTian 树形DP,一般是在树上进行DP,由于树固有的递归性质,树形DP一般都是递归进行的。这是说我们的树其实是可以递归定义的,树的每一颗子树也是一个完整的树,直到叶子结点可以看做是递归终点。 树形DP是先算子树再进行合并,在实现上与树的后序遍历相似,即左 阅读全文
posted @ 2022-02-22 16:28 红叶~ 阅读(47) 评论(0) 推荐(0) 编辑
摘要:状态压缩DP 对于某些动态规划问题,可以用深搜来枚举状态,但是那样的话时间复杂度就太高了。对于此类问题我们采用二进制表示状态,用1和0来表示某位置不同的状态。 1、对于状压DP问题,我们一般取一个初始状态。确定状态数组的含义。 2、明确相邻状态的转移,一般我们可以记录某个状态可以转移的相邻状态(打表 阅读全文
posted @ 2022-02-18 21:47 红叶~ 阅读(48) 评论(0) 推荐(0) 编辑
摘要:算法基础课部分题目总结 第一章 基础算法 快速排序 快速排序 第k个数 归并排序 归并排序 逆序对的数量 二分 数的范围 数的三次方根 高精度 高精度模板 前缀和与差分 前缀和差分模板 双指针算法 最长连续不重复子序列 数组目标的元素和 判断子序列 位运算 二进制中1的个数(题解中有总结的方法) 离 阅读全文
posted @ 2022-02-17 22:43 红叶~ 阅读(26) 评论(0) 推荐(0) 编辑
摘要:辗转相减法 1、理论依据 gcd(a,b)=gcd(b,ab)辗转相除法的证明 2、应用 用来求若干个形如(pq)ri的最大公约数:其中 pq不是次幂的形式 p、q、ri均为正整数 辗转相减法 int gcd(in 阅读全文
posted @ 2022-02-17 19:31 红叶~ 阅读(721) 评论(0) 推荐(0) 编辑
摘要:理解 动态规划是指把一个问题分成若干个子问题,通过局部最优解得到全局最优的一种算法策略或者说一种思想方法,简单来讲就是用一个数组表示我们要求的问题的答案:由前一个问题的答案推出另一个问题的答案。 dp一般有三个步骤: 1、设计状态:设计合适的数组以及相应的含义。 2、状态转移方程:从已知问题的答案推 阅读全文
posted @ 2022-02-16 15:37 红叶~ 阅读(115) 评论(0) 推荐(0) 编辑
摘要:滚动数组 作用在于优化空间,主要应用在递推或动态规划中,可以循环利用空间。 例如斐波那契数列,只由前面两个元素得出下一个元素 int d[]; d[0] = d[1] = 1; for(i = 2;i<80;i++) { d[i%3] = d[(i-1)%3] + d[(i-2)%3]; } 二维数 阅读全文
posted @ 2022-02-16 12:49 红叶~ 阅读(47) 评论(0) 推荐(0) 编辑
摘要:区间DP 区间DP常用模板 所谓区间DP,指在一段区间上进行动态规划,一般做法是由长度较小的区间往长度较大的区间进行递推,最终得到整个区间的答案,边界就是长度为1和2的区间 所有的区间DP问题,有两种写法 1、第一维都是枚举区间长度,第二维枚举起点,先求出小区间的属性值,进而扩展到大区间 核心思想: 阅读全文
posted @ 2022-02-16 11:49 红叶~ 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示