![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法
一些算法板子
是一只努力的小菜鸡啦
一只小菜鸡持续努力中…
展开
-
算法板子:区间DP——石子合并
【代码】算法板子:区间DP——石子合并。原创 2024-08-14 16:29:27 · 102 阅读 · 0 评论 -
算法板子:线性DP——算出三角形中的最大路径值、求最长上升子序列、求最长公共子序列
【代码】算法板子:线性DP——算出三角形中的最大路径值、求最长上升子序列、求最长公共子序列。原创 2024-08-12 20:46:06 · 275 阅读 · 0 评论 -
算法板子:DP背包问题——01背包、完全背包、多重背包
比如第1种物品的体积为1价值为2数量为8,那么就可以就可以将数量8拆分成1,2,4,1;步骤:第一步:写出01背包问题的优化空间的板子,写的时候记得多层物品i的数量k的for循环,注意k从0开始到s[i]。:将内层循环变为逆序,j从m循环到w[i],保证j-w[i]大于等于0;:调整j的范围,j从w[i]开始循环,保证j-w[i]大于等于0;,01背包问题是i种物品,每种1件,可以往背包中放0或1件。有i种物品,背包容量为j,每种物品可以有无限件,有i种物品,背包容积为j,每种物品有s件,可以。原创 2024-08-11 23:37:40 · 297 阅读 · 0 评论 -
算法板子:博弈论——Nim游戏判断是否是先手必胜
【代码】算法板子:博弈论——Nim游戏判断是否是先手必胜。原创 2024-08-10 20:04:08 · 103 阅读 · 0 评论 -
算法板子:容斥原理——求出 1∼n 中能被质数 p1,p2,…,pm 中的至少一个数整除的整数有多少个
1. 设:求1~10中能被质数2和3中至少一个数整除的数有多少个。1~10中能被质数2整除的数的集合记为S1={2,4,6,8,10},能被质数3整除的数的集合记为S2={3,6,9},能同时被质数2和3整数的数的集合为S1∩S2={6}:S1集合的元素个数为n/p1,也就是10/2=5;S2集合的元素个数为n/p2,也就是10/3=3;S3集合的元素个数为n/(p1*p2),也就是10/(2*3)=1。S1集合用二进制位001标识;S2集合用二进制位010标识;S1∩S2交集集合用011来标识。原创 2024-08-10 18:27:05 · 338 阅读 · 0 评论 -
算法板子:欧拉函数——求一个数的欧拉函数、线性时间内求1~n所有数的欧拉函数
给一个整数n,求n的欧拉函数就是求1~n中有几个数和n互质。互质就是两个整数除了1以外没有其他的公约数。可以在线性的时间内求出欧拉函数,时间复杂度比上一种更小,模版类似筛法求质数。原创 2024-08-10 12:19:22 · 344 阅读 · 0 评论 -
算法板子:约数——找到一个数的所有约数
【代码】算法板子:约数——找到一个数的所有约数。原创 2024-08-10 09:49:52 · 81 阅读 · 0 评论 -
算法板子:质数——判定质数、分解质因数、筛质数
这道题的目的是找到x这个数的质因数的底数和指数。例如280这个数,可以看成2^3 * 5^1 * 7^1,其中2、5和7分别是三个质因数的底数,3、1、1分别是三个质因数的指数。质数和合数是一对相反的概念;质数是除数只有1和它本身, 合数是除了1和它本身还有别的除数。原创 2024-08-08 19:48:14 · 578 阅读 · 0 评论 -
算法板子:匈牙利算法——二分图的最大匹配
顶点集 V 分为两个集合,且图中每条边依附的两个顶点都分属于这两个子集,也就是第一个集合中的某个点可以对应上第二个集合中的某个点,就是二分图。把左边的u集合看成一堆男生,右边的v集合看成一堆女生。原创 2024-08-07 22:44:07 · 262 阅读 · 0 评论 -
算法板子:求最小生成树——Prim算法、Kruskal算法
在无向连通图中找到一个子图,子图的顶点个数为n(与父图一致),边的条数为n-1,且边的权重之和最小时就是最小生成树。原创 2024-08-07 20:42:44 · 254 阅读 · 0 评论 -
算法板子:最短路问题——包含朴素Dijkstra算法、堆优化版的Dijkstra算法、SPFA算法、Floyd算法
【代码】算法板子:最短路问题——包含朴素Dijkstra算法、堆优化版的Dijkstra算法、SPFA算法、Floyd算法。原创 2024-08-06 21:22:32 · 702 阅读 · 0 评论 -
算法板子:拓扑序列——求有向无环图的拓扑序列、判断一个有向图是否有环
【代码】算法板子:拓扑序列——求有向无环图的拓扑序列、判断一个有向图是否有环。原创 2024-08-04 18:10:03 · 136 阅读 · 0 评论 -
算法板子:树形DP、树的DFS——树的重心
【代码】算法板子:树形DP、树的DFS——树的重心。原创 2024-08-02 20:53:05 · 253 阅读 · 0 评论 -
算法板子:二分查找寻找数组中某数的下标、或是判断数组中某数是否存在
【代码】算法板子:二分查找寻找数组中某数的下标、或是判断数组中某数是否存在。原创 2024-08-02 12:12:24 · 701 阅读 · 0 评论 -
算法板子:BFS(广度优先搜索)——迷宫问题,求从迷宫的起点到终点的最短路径; 八数码问题,求从初始布局到最终布局x最少移动多少次
【代码】算法板子:BFS(广度优先搜索)——迷宫问题,求从迷宫的起点到终点的最短路径。原创 2024-08-01 12:07:44 · 428 阅读 · 0 评论 -
算法板子:DFS(深度优先搜索、暴搜)——寻找1~n这n个数的所有排列方案、八皇后问题
【代码】算法板子:DFS(深度优先搜索、暴搜)——寻找1~n这n个数的所有排列方案。原创 2024-07-31 12:30:06 · 322 阅读 · 0 评论 -
算法板子:字符串哈希——判断一个字符串的两部分子串是否完全相同
【代码】算法板子:字符串哈希——判断一个字符串的两部分子串是否完全相同。原创 2024-07-30 13:43:52 · 219 阅读 · 0 评论 -
算法板子:模拟哈希表——哈希映射、哈希表中插入新值、拉链法处理冲突、查找一个数是否在哈希表中
【代码】算法板子:模拟哈希表——哈希映射、哈希表中插入新值、拉链法处理冲突、查找一个数是否在哈希表中。原创 2024-07-30 10:57:31 · 178 阅读 · 0 评论 -
算法板子:模拟堆——在堆中插入元素、查询堆中最小值、删除最小值、在任意位置插入元素、删除任意位置元素;构造小根堆、堆排序
【代码】算法板子:堆排序——找出数组中前m个最小元素,包括构造小根堆、查询堆中最小值。原创 2024-07-28 20:01:03 · 491 阅读 · 0 评论 -
算法板子:并查集——合并两个集合、判断两个数是否在一个集合内
【代码】算法板子:并查集——合并两个集合、判断两个数是否在一个集合内。原创 2024-07-28 16:23:49 · 138 阅读 · 0 评论 -
算法板子:Trie树——存储字符串、查找字符串的出现次数、寻找数组中的最大异或对
【代码】算法板子:Trie树——存储字符串、查找字符串的出现次数。原创 2024-07-27 22:36:51 · 221 阅读 · 0 评论 -
算法板子:KMP算法——寻找父串中子串的出现位置
【代码】算法板子:KMP算法——寻找父串中子串的出现位置。原创 2024-07-27 20:30:54 · 335 阅读 · 0 评论 -
算法板子:滑动窗口——应用单调队列,找到窗口中的最小值与最大值
【代码】算法板子:滑动窗口——应用单调队列,找到窗口中的最小值与最大值。原创 2024-07-27 17:21:32 · 636 阅读 · 0 评论 -
算法板子:使用数组模拟队列——在队尾插入元素、在队头弹出元素、判断队列是否为空、查询队头元素
【代码】算法板子:使用数组模拟队列——在队尾插入元素、在队头弹出元素、判断队列是否为空、查询队头元素。原创 2024-07-27 12:01:23 · 184 阅读 · 0 评论 -
算法板子:使用数组模拟栈——插入栈顶元素、弹出栈顶元素、判断栈为空、查询栈顶元素
【代码】算法板子:使用数组模拟栈——插入栈顶元素、弹出栈顶元素、判断栈为空、查询栈顶元素。原创 2024-07-27 11:27:58 · 150 阅读 · 0 评论 -
算法板子:使用数组模拟双链表——初始化链表、插入结点、删除结点
【代码】算法板子:使用数组存储双链表——初始化链表、插入结点、删除结点。原创 2024-07-27 10:23:25 · 115 阅读 · 0 评论 -
算法板子:归并排序的应用——计算数组中逆序对的个数
【代码】算法班板子:归并排序的应用——计算数组中逆序对的个数。原创 2024-07-25 12:17:05 · 112 阅读 · 0 评论 -
算法板子:快速排序的应用---寻找数组中第k小的数
【代码】(C++)基础算法学习:寻找第k小的数---快速选择排序。原创 2024-07-10 21:42:00 · 103 阅读 · 0 评论 -
算法板子:使用数组模拟单链表——初始化链表、插入头结点、任意位置插入结点;删除头结点、任意位置删除结点
【代码】算法板子:使用数组存储单链表——插入头结点、任意位置插入结点;删除头结点、任意位置删除结点。原创 2023-03-05 11:43:19 · 37 阅读 · 0 评论 -
算法板子:合并区间
【代码】(C++) 基础算法学习:合并区间。原创 2023-03-01 10:50:11 · 326 阅读 · 0 评论 -
算法板子:下标离散化——数组中用到的下标跨度很大时,将下标映射为更加紧凑的新下标,并在新下标上执行相关操作
【代码】(C++) 基础算法学习:离散化。原创 2023-02-28 21:35:09 · 163 阅读 · 0 评论 -
(C++) 基础算法学习:lowbit运算
【代码】(C++) 基础算法学习:lowbit运算。原创 2023-02-28 16:16:53 · 65 阅读 · 0 评论 -
(C++) 基础算法学习:求一个数的二进制表示
【代码】(C++) 基础算法学习:求一个数的二进制表示。原创 2023-02-28 09:52:59 · 227 阅读 · 0 评论 -
算法板子:双指针算法——求最长的连续的不重复的子序列、求数组元素的目标和、判断子序列
-> 时间复杂度:O(n)先用暴力写,看一下i和j之间是否有什么单调关系,改写成for + while形式,将枚举数量从n^2降到n。原创 2023-02-28 09:36:52 · 92 阅读 · 0 评论 -
(C++) 基础算法学习:快速选择排序
【代码】(C++) 基础算法学习:快速选择排序。原创 2023-02-14 16:19:30 · 53 阅读 · 0 评论 -
算法板子:差分数组——一段区间内的数都加c
【代码】(C++) 基础算法学习:差分。原创 2023-02-05 14:43:24 · 148 阅读 · 0 评论 -
算法板子:求前缀和数组——得到一段区间内所有数的总和
【代码】(C++) 基础算法学习:前缀和。原创 2023-02-05 12:47:33 · 93 阅读 · 0 评论 -
(C++) 基础算法学习:高精度除法
【代码】(C++) 基础算法学习:高精度除法。原创 2023-01-29 20:14:51 · 107 阅读 · 0 评论 -
(C++) 基础算法学习:高精度乘法
【代码】(C++) 基础算法学习:高精度乘法。原创 2023-01-29 19:40:21 · 51 阅读 · 0 评论 -
算法板子:高精度减法——两个位数很长的整数相减
【代码】算法板子:高精度减法——两个位数很长的整数相减。原创 2023-01-29 19:14:34 · 177 阅读 · 0 评论