摘要: 搜索 DFS Flood Fill 可以在线性时间复杂度内,找到某个点所在的连通块 池塘计数 城堡问题 山峰和山谷 最短路模型 所有边权重都一样的最短路算法 迷宫问题 武士风度的牛 抓住那头牛 多源BFS 起点不唯一,如果有多个起点如何去求最短路 矩阵距离 最小步数模型 状态本身是一个点,图本身作为 阅读全文
posted @ 2022-07-11 09:28 esico 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 维护当前结点的最大值 向序列后添加一个数,相当于将最后一个数修改为某数 询问这个序列中最后L个数中最大的数是多少,相当于求两个子结点的最大值 题目代码 #include <cstdio> #include <iostream> #include <cstring> #i 阅读全文
posted @ 2022-07-30 17:20 esico 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 让排头当根节点 维护当前点距根节点的距离 题目代码 #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; const int 阅读全文
posted @ 2022-07-19 16:48 esico 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 先进行离散化(题目中给的数据范围很大,但需要用到的很少),10^9^ ==> 2 × 10^6^ 离散化方式: 若要求保序:排序、判重、二分 若不要求保序,用map 本题约束条件的顺序无所谓,则先考虑所有相等的约束条件(一定无矛盾),再考虑不相等的约束条件 相等则放在一 阅读全文
posted @ 2022-07-19 12:40 esico 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 把所有有边相连的点合并在一起,并且维护总体积和总价值 把每个连通块看成一个物品,之后做一遍01背包 时间复杂度:O(nw) 题目代码 #include <iostream> #include <cstring> #include <algorithm> using na 阅读全文
posted @ 2022-07-19 10:23 esico 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 如果两个点连边之前在一个集合里,那么连边后就构成一个环 如果两个点连边之前不在一个集合里,那么连边后就不构成一个环 从前往后合并,直到第一次出现环为止 把二维坐标转化为一维坐标,(x,y)==> x × n + y, xy坐标都从0开始 题目代码 #include <i 阅读全文
posted @ 2022-07-19 10:05 esico 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目思路 A*算法:终点第一次从终点弹出时,一定是最小值 估价函数:从当前点到终点的最短距离,估计距离<=真实距离(在终点跑一遍dijkstra算法即可) 终点弹第几次就是第几短路 题目代码 #include <iostream> #include <cstring> #incl 阅读全文
posted @ 2022-07-18 10:23 esico 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 解决思路 启发函数:只需要搜索非常少的状态,就可以搜到从起点到终点的最短路径 估价函数:当前状态中每个数与它的目标位置的曼哈顿距离之和 A*算法 优先级为:从起点到当前点的真实距离 + 从当前点到终点的估计距离 题目代码 #include <iostream> #include 阅读全文
posted @ 2022-07-17 11:43 esico 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目大意 从字符串A到字符串B需要至少经过几次替换 解题思路 双向广搜:从两个方向同时搜索,而不是从一个方向搜到另一个方向 每次每一边只扩展一个点是不正确的,正确做法应该是每次每边扩展完整一层 题目代码 #include <iostream> #include <cstring> 阅读全文
posted @ 2022-07-15 16:25 esico 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 题目大意 找到一条从左上角到右下角的通路 旋转格子次数最少 解题思路 运用双端队列广搜 不旋转则权重为0,旋转则权重为1 从队头扩展出的边的权重为0时,插到队头,权重为1时,插到队尾 偏移量求解如下图: 题目代码 #include <iostream> #include <cst 阅读全文
posted @ 2022-07-14 11:07 esico 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目描述 见题目链接! 解题思路 将每一种魔板看作一个点,从初始状态12345678搜到目标状态 用unordered_map进行哈希,如:<String, int> ==> <"21345678", 2>,指从初始状态到目前状态需要操作多少次 因为还要输出进行的操作序列,如<String 阅读全文
posted @ 2022-07-13 17:22 esico 阅读(19) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示