
算法笔记
文章平均质量分 96
寂空_
想当高手…
展开
-
【算法笔记】动态规划基础(二):背包dp
2. 01背包问题分析问题,首先需要遍历每一个物品,题中要求最大价值,限制条件是最大体积,要遍历所有可能的体积,因此要开两维:dp[i][j]dp[i][j]dp[i][j]综上:dp[i][j]dp[i][j]dp[i][j]表示所有从前iii个物品中选,所选物品总体积不超过jjj的最大价值。最后一步就不同,有点dfsdfsdfs指数级枚举的感觉,第iii个物品可以选、也可以不选。如果不选第iii个物品,跟看第iii个物品前相比,总体积不变、总价值不变,也就是dp[i−1][j]dp[i - 1][j]原创 2025-05-05 21:54:06 · 1077 阅读 · 0 评论 -
【算法笔记】ACM数论基础模板
本文介绍了数论中的几个重要定理和算法,包括唯一分解定理、鸽巢原理、容斥原理和裴蜀定理。此外,还详细讲解了最大公约数、最小公倍数的计算方法,以及质数的判断、分解质因数和筛质数的算法。约数的求法、约数个数和约数之和的计算方法也被涵盖,提供了多种实现方式,包括试除法、朴素筛法和线性筛法。这些内容为理解和应用数论中的基本概念和算法提供了全面的指导。原创 2025-05-13 15:53:04 · 1545 阅读 · 0 评论 -
【算法笔记】动态规划基础(一):dp思想、基础线性dp
穷举。所有的算法都是在让计算机【如何聪明地穷举】而已,动态规划也是如此。# 动态规划的精髓## 什么叫“状态”每一个 DP 子问题,都可以用一组变量来唯一标识。把这组变量称为一个 **“状态”**,用 $dp[状态]$来表示该子问题的最优解(或方案数、合法性等)。举个例子,我在实验室坐着敲代码,小王在图书馆站着处对象、小明在水房倒立洗头... - 这里的(我,实验室,坐着,敲代码),(小王,图书馆,站着,处对象),(小明,水房,倒立,洗头)就是三组状态,可以用一个四维的数组来表示,$dp[i]原创 2025-04-23 14:28:50 · 1330 阅读 · 3 评论 -
【算法笔记】图论基础(二):最短路、判环、二分图
Dijkstra算法和求最小生成树的Prim算法思路相同,也是将所有的点划分成两个区间,然后n次迭代,不断地向连通部分中**加点**,不同的是Dijkstra的“连通部分”表示的是**已经确定最短路径的点**(dist已经更新为到源点的最短距离的点)**注意: Prim中的dist[i]表示的是i距离连通部分的最短距离,Dijkstra中的dist[i]表示的是i距离源点的最短距离,别弄混了,**原创 2025-03-24 21:39:33 · 973 阅读 · 0 评论 -
【算法笔记】二分查找 && 二分答案习题题解
二分答案 二分查找经典题型超详细题解,手把手教你二分原创 2024-08-06 22:08:47 · 1136 阅读 · 0 评论 -
【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树
一个有向图,如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。一直进行上面的处理,如果所有点都能被删掉,则这个图可以进行拓扑排序。原创 2025-03-22 14:40:23 · 2078 阅读 · 4 评论 -
【算法笔记】二分查找 && 二分答案 (超详细解析,一篇让你搞懂二分)
二分查找应该算是是很多人入门的第一个算法吧,无论是ACM还是蓝桥杯都是必学的算法,很多人都觉得其非常简单,但它真的那么简单吗?Knuth 大佬(发明 KMP 算法的那位)曾说过:(思路很简单,细节是魔鬼)本文将为大家详细讲解二分查找的原理和使用场景并且,我们就是要深入细节,我将从while循环中该不该带mid该不该+1等地方分析这些细节的差异及出现差异的原因,保证你能灵活准确的写出二分查找算法。二分查找,也称为折半查找(Binary Search),是一种在有序数组中查找特定元素的搜索算法。原创 2024-06-14 17:49:39 · 15316 阅读 · 23 评论