摘要:
目录 算法解析 1.什么是单调队列 2.优势 3.单调队列适用于那些范围 4.两个应用 5.队列常用操作 例题: 算法解析 1.什么是单调队列 顾名思义,就是兼具单调性质和队列性质的数据结构 2.优势 如果我们想在一个普通队列中找到一个极值,需要遍历整个队... 阅读全文
摘要:
简单版本:129. 火车进栈 - AcWing题库 AC代码 #include #include #include using namespace std;vector state3; //火车出站stack state2; //火车入站in... 阅读全文
摘要:
A*算法中的估价函数 知识点二十五:启发式搜索算法 1、估价函数 用来估计当前点到终点的最短距离。对于任意点u,d[u]+f[u] <= d[u] + g[u]g[u]表示从点u到终点的真实距离f[u]表示从点u到终点的估计距离即估计的距离必须小于等于真实距离 ,f[state] <= g[stat 阅读全文
摘要:
3115. 疯狂的馒头 - AcWing题库 思路: 由于一个点最后的颜色取决于最后一次染色,那么我们可以倒着染色, 每染色一个点就将这个点删掉并记录颜色。 用ptr[i] 表示第i 个元素后面第一个未被覆盖的区间 当我们覆盖一个点i 的时候,... 阅读全文
摘要:
1 阅读全文
摘要:
目录 DP 1、01背包+逆向 思路 1 、未优化空间做法MLE 2、优化空间做法AC 2、背包DP+去重 双指针+简单推式子 记忆化搜索 二叉树 1、二叉树搜索树 2、完全二叉树 图论 1、最短 DP 1、01背包+逆向 3-2 拼题A打卡奖励 (30... 阅读全文
摘要:
1.最短路+DFS 1135. 新年好 - AcWing题库 思路: 题目让我们求起点1出发,途径2,3,4,5,6号点的最短路径。 由于我们无法在求单源最短路的过程中确定我们的最短路顺序,否则就无法保证最短路是最短的! 根据数据范围,我们可... 阅读全文
摘要:
920. 最优乘车 - AcWing题库 思路:只要两个点之间可达,距离就是1 每个车站到达后面的车站的距离都是1 那么1到达n的最短距离就是转车次数+1 由于距离都是1,可以用bfs求最短路 注意: 这里的车站是单程的 技巧: s... 阅读全文
摘要:
为什么BFS可以用来求权值为1的最短路? 由于我们知道Dijkstra算法肯定是正确的,那么我们可以通过证明bfs可以实现Dijkstra算法的功能,就证明了其正确性。 首先,我们知道Dijkstra算法的核心是每次从队列中取出一个最小的点,也就是小根堆的堆顶... 阅读全文
摘要:
介绍: 可以形象的理解为洪水覆盖算法,每当我们dfs一个点,这个点就像洪水一样,把所有与它相邻的并且可以被合法的点覆盖掉。 应用场景: 通常作为解题中的一步,常用来处理有关连通块的问题。 例如:求联通块个数,求每个连通块的边长。 例题1:1097. 池... 阅读全文