![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 87
Rockivy-
一个专注于分享编程的程序员Rockivy,主要研究Java领域,C++,Python,C等语言以及算法方面,以及项目实战经验分享,欢迎斧正。
展开
-
“区间优化:贪心算法在区间问题中的应用“
给定 𝑁 个闭区间 [𝑎𝑖,𝑏𝑖],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。原创 2024-07-05 21:54:12 · 1502 阅读 · 0 评论 -
探索记忆化搜索:优化递归算法的利器
给定一个 𝑅 行 𝐶 列的矩阵,表示一个矩形网格滑雪场。矩阵中第 𝑖 行第 𝑗 列的点表示滑雪场的第 𝑖 行第 𝑗 列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。在给定矩阵中,一条可行的滑行轨迹为 24−17−2−1。在给定矩阵中,最长的滑行轨迹为 25−24−23−…−3−2−1,沿途共经过 25 个区域。原创 2024-07-03 17:41:16 · 1093 阅读 · 0 评论 -
舞会无领导:一种树形动态规划的视角
Ural 大学有 𝑁 名职员,编号为1∼𝑁。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 𝐻𝑖 给出,其中1≤𝑖≤𝑁。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。原创 2024-07-01 19:51:31 · 497 阅读 · 0 评论 -
“优化状态空间:状态压缩DP在蒙德里安的梦想问题中的应用“
dp[i][j]表示前i - 1列的方格都已完全覆盖,第i列方格被第i - 1列伸出的方块覆盖后状态为j的所有方案数例如,上图表示的就是dp[3][010010]的状态(红色为2 * 1方块,绿色为1 * 2方块)0表示没有覆盖,1表示覆盖。原创 2024-06-28 23:54:29 · 311 阅读 · 0 评论 -
“计数动态规划:探索整数划分问题中的计数技巧与方法“
一个正整数 n𝑛 可以表示成若干个正整数之和,形如:𝑛=𝑛1+𝑛2+…+𝑛𝑘,其中 𝑛1≥𝑛2≥…≥𝑛𝑘, 𝑘≥1。我们将这样的一种表示称为正整数 𝑛 的一种划分。现在给定一个正整数 𝑛,请你求出 𝑛 共有多少种不同的划分方法。原创 2024-06-27 13:35:00 · 282 阅读 · 0 评论 -
“区间合并解析:石子合并问题的算法探索与实现“
设有 𝑁 堆石子排成一排,其编号为 1,2,3,…,𝑁。每堆石子有一定的质量,可以用一个整数来描述,现在要将这 𝑁 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有 4 堆石子分别为1 3 5 2, 我们可以先合并 1、2 堆,代价为 44,得到4 5 2, 又合并 1、2 堆,代价为 9,得到9 2,再合并得到 11,总代价为 4+9+11=24;原创 2024-06-26 21:04:25 · 494 阅读 · 0 评论 -
“文本比对基础:最短编辑距离算法的原理与实现“
有三种操作,所以有三个子集ok子集划分完了考虑状态转移的时候先考虑如果我没有进行这个操作应该是什么状态然后考虑你进行这一步操作之后会对你下一个状态造成什么影响然后再加上之前状态表示中你决策出来的那个DP属性这样就可以自然而然地搞出来转移方程啦1)删除操作:把a[i]删掉之后a[1i]和b[1j]匹配所以之前要先做到a[1(i-1)]和b[1j]匹配2)插入操作:插入之后a[i]与b[j]完全匹配,所以插入的就是b[j]那填之前a[1i]和b[1(j-1)]匹配。原创 2024-06-25 11:40:52 · 864 阅读 · 0 评论 -
“序列优化探究:最长上升子序列的算法发现与应用“
最长上升子序列是指在一个给定序列中,找到一个最长的子序列,使得子序列中的元素单调递增。例如,序列 [1, 3, 5, 4, 7] 的最长上升子序列是 [1, 3, 5, 7],长度为4。这是一个经典的动态规划问题。假设dp[i]表示以第i个元素为结尾的最长上升子序列的长度。可以用一个嵌套循环来遍历所有的元素对,如果前一个元素小于后一个元素,则可以将后一个元素添加到前一个元素所在的最长上升子序列中,从而得到以第i个元素为结尾的最长上升子序列长度。原创 2024-06-23 16:23:15 · 1422 阅读 · 0 评论 -
“无限选择的挑战:完全背包问题的算法策略与解决方案“
小明期末考试得了全班第一名,妈妈给了他一个背包,可以去超市任意选购,可以选购多种商品,每种商品可以选购多个,但是选择的商品必须都放在背包里。超市很大,有很多种商品:火腿,雪糕,饼干 ·····。每种商品都摆满了货架。不同商品的体积和价值不同。在背包能装下的前提下,小明想尽可能带回价值总量高的商品,请问他能带回的商品的最大价值是多少?这就是完全背包问题。有 N 种物品和一个背包,每种物品的数量无限。给出了每种物品的体积 v 和价值 w 以及背包的容量 V。原创 2024-06-21 01:00:00 · 1217 阅读 · 0 评论 -
“优化存储:01背包问题的算法解析与实际应用“
我们的目的是,找到一种选择方案,在背包能装下的情况下,使得选择物品的总价值最大,然后输出总价值。原创 2024-06-20 16:45:12 · 954 阅读 · 0 评论 -
“算法精粹:快速幂技术及其在逆元求解中的应用“
若整数𝑏,𝑚 互质,并且对于任意的整数 𝑎,如果满足𝑏|𝑎,则存在一个整数 𝑥,使得 𝑎/𝑏≡𝑎×𝑥(mod𝑚),则称 𝑥 为 𝑏 的模 𝑚 乘法逆元,记为 𝑏−1(mod𝑚)。𝑏 存在乘法逆元的充要条件是 𝑏 与模数 𝑚 互质。当模数 𝑚 为质数时,bm−2𝑏𝑚−2 即为 𝑏 的乘法逆元。原创 2024-06-19 01:40:47 · 753 阅读 · 0 评论 -
“数论探秘:约数的试除法、个数统计、约数之和与最大公约数的计算“
如果一个数a除以另一个数b的余数为0,即 a%b == 0, 则b是a的约数。原创 2024-06-18 01:15:00 · 745 阅读 · 0 评论 -
“探索质数的世界:试除法判定、质因数分解与筛法的综合应用“
一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数,这个数就是质数。给定一个数 x,判断 x 是否为质数:用 x 除以 2 ~ x - 1 中的每个数,如果出现了余数为 0,则这个数不是质数,如果没有出现余数为 0,则这个数是质数。原创 2024-06-17 11:45:28 · 735 阅读 · 0 评论 -
“二分图匹配策略:匈牙利算法详解与应用实践“
通过数代人的努力,你终于赶上了剩男剩女的大潮,假设你是一位光荣的新世纪媒人,在你的手上有N个剩男,M个剩女,每个人都可能对多名异性有好感(暂时不考虑特殊的性取向),如果一对男女互有好感,那么你就可以把这一对撮合在一起,现在让我们无视掉所有的单相思,你拥有的大概就是下面这样一张关系图,每一条连线都表示互有好感。二分图的匹配:给定一个二分图 𝐺,在 𝐺 的一个子图 𝑀 中,𝑀 的边集 {𝐸} 中的任意两条边都不依附于同一个顶点,则称 𝑀 是一个匹配。输出一个整数,表示二分图的最大匹配数。原创 2024-06-16 00:45:00 · 742 阅读 · 0 评论 -
染色法判定二分图
说人话的定义:图中点通过移动能分成左右两部分,左侧的点只和右侧的点相连,右侧的点只和左侧的点相连。接下来 m𝑚 行,每行包含两个整数 u𝑢 和 v𝑣,表示点 u𝑢 和点 v𝑣 之间存在一条边。有两顶点集且图中每条边的的两个顶点分别位于两个顶点集中,每个顶点集中没有边直接相连接!若已经染色且颜色和相邻顶点的颜色相同则说明不是二分图,若颜色不同则继续判断。给定一个 n𝑛 个点 m𝑚 条边的无向图,图中可能存在重边和自环。判断其相邻的顶点中,若未染色则将其染上和相邻顶点不同的颜色。如果给定图是二分图,则输出。原创 2024-06-15 00:45:00 · 220 阅读 · 0 评论 -
Kruskal算法求最小生成树
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图 𝐺=(𝑉,𝐸),其中 V𝑉 表示图中点的集合,𝐸 表示图中边的集合,𝑛=|𝑉|,m=|E|。由 𝑉 中的全部 𝑛 个顶点和 E 中 𝑛−1 条边构成的无向连通子图被称为 𝐺 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 𝐺 的最小生成树。原创 2024-06-14 15:59:58 · 345 阅读 · 0 评论 -
“Prim算法精讲:构建最小生成树的策略与实现“
Prim算法求最小生成树:图解+详细代码注释(带上了保存路径)原创 2024-06-13 00:30:00 · 1280 阅读 · 0 评论 -
动态规划在图搜索中的应用:Floyd算法详解
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出“impossible”。数据保证图中不存在负权回路。第一行包含三个整数n,m,k接下来m行,每行包含三个整数x,y,z,表示点x和点y之间存在一条有向边,边长为z。接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。共k行,每行输出一个整数,表示询问的结果,若询问两点间不存在路径,则输出“impossible”。原创 2024-05-28 00:30:00 · 1255 阅读 · 0 评论 -
Acwing算法基础
课下:1理解思想2背写代码模板3课后题目 —检验掌握程度。原创 2024-05-22 14:30:29 · 594 阅读 · 0 评论 -
spfa之求最短路和判断负环
spfa之求最短路和判断负环(深入详细理解spfa)原创 2024-05-13 01:00:00 · 952 阅读 · 0 评论 -
有边数限制的最短路
Bellman - ford 算法是求含负权图的单源最短路径的一种算法,效率较低,代码难度较小。其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在 n-1 次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。(通俗的来讲就是:假设 1 号点到 n 号点是可达的,每一个点同时向指向的方向出发,更新相邻的点的最短距离,通过循环 n-1 次操作,若图中不存在负环,则 1 号点一定会到达 n 号点,若图中存在负环,则在 n-1 次松弛后一定还会更新)原创 2024-05-12 02:45:00 · 1012 阅读 · 0 评论 -
Dijkstra求最短路 I:图解 详细代码(图解)
Dijkstra求最短路 I:图解 详细代码(图解)原创 2024-05-11 03:45:00 · 1046 阅读 · 0 评论 -
拓扑排序--思路介绍+图解模拟+详细代码注释
拓扑排序--思路介绍+图解模拟+详细代码注释原创 2024-05-09 04:15:00 · 456 阅读 · 0 评论 -
bfs之八数码
bfs之八数码图解详解原创 2024-05-08 01:00:00 · 945 阅读 · 0 评论 -
bfs之走迷宫
bfs之走迷宫图解加详解原创 2024-05-07 01:00:00 · 381 阅读 · 0 评论 -
dfs之 n-皇后问题--图解+代码注释
dfs之 n-皇后问题--图解+代码注释 多种写法,多种思路详解原创 2024-05-06 06:15:00 · 890 阅读 · 0 评论 -
dfs之排列数字--深度优先遍历代码+注释
dfs之排列数字,经典例题详解dfs,保你理解原理和剪枝原创 2024-05-05 01:00:00 · 1308 阅读 · 0 评论 -
字符串哈希-最易懂的证明
字符串哈希,最易懂的证明原创 2024-05-04 01:00:00 · 407 阅读 · 0 评论 -
模拟散列表 - C++ STL 6种写法
模拟散列表 - C++ STL 6种写法原创 2024-05-03 01:00:00 · 16 阅读 · 0 评论 -
哈希表-模拟散列表
哈希表 模拟散列表(拉链法,开放寻址法)详解原创 2024-05-02 01:00:00 · 7 阅读 · 0 评论 -
堆排序详解
数据结构中堆排序详解原创 2024-05-01 00:15:00 · 801 阅读 · 0 评论 -
并查集应用-连通块中点的数量and食物链
并查集应用-连通块中点的数量and食物链(保姆级详解)保准学会并查集,以及应用特别是扩展域和带边权的区别和应用原创 2024-04-30 00:00:00 · 950 阅读 · 0 评论 -
基础_并查集_合并集合
并查集(保姆级讲解)原创 2024-04-29 02:15:00 · 759 阅读 · 0 评论 -
Trie 详解和应用
Trie树图文详解 和最大异或对应用原创 2024-04-28 11:16:58 · 927 阅读 · 1 评论 -
字符串查找---用16幅图从暴力一步步优化到KMP
KMP字符串查找,详解,通过16图帮助你从暴力一步步优化到KMP,帮助理解原创 2024-04-28 11:17:58 · 1527 阅读 · 1 评论 -
单调队列---滑动窗口
热点算法,单调队列之滑动窗口的详解原创 2024-04-25 11:24:11 · 1426 阅读 · 1 评论 -
模拟队列-单调栈
主要对栈的单调性以及队列进行模拟原创 2024-04-25 11:09:52 · 842 阅读 · 1 评论 -
模拟栈-及表达式求值
本文主要讲解栈的相关知识,并详解数组模拟栈及表达式求值原创 2024-04-24 10:57:24 · 859 阅读 · 0 评论 -
单链表-双链表
单链表以及双链表的详解原创 2024-04-23 22:43:47 · 980 阅读 · 0 评论 -
位运算-离散化-区间合并
详解算法中位运算,离散化,区间和并部分原创 2024-04-22 13:26:46 · 803 阅读 · 0 评论