• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
jacklee404
Never Stop!
博客园    首页    新随笔    联系   管理    订阅  订阅

文章分类 -  Algorithm

上一页 1 2 3 4 5 6 下一页
Learning in algorithm
走廊泼水节-Kruskal算法扩展

摘要:走廊泼水节 题目 346. 走廊泼水节 思路 ​ 考虑$N$个节点数,将最小生成树扩充为完全图($N$个点, 每个点$N - 1$条边), 我们从Kruskal算法的思路开始思考, Kruskal算法通过不断的合并点集来建立最小生成树, 在合并的过程中,两个点集之间一定是没有任何边的,所有我们考虑在 阅读全文
posted @ 2023-05-09 18:48 Jack404 阅读(109) 评论(0) 推荐(0)
北极通讯网络 Kruskal算法-扩展

摘要:北极通讯网络 题目 北极通讯网络 思路 ​ 一开始想的时候,先删除最大的点,然后依次枚举,找到不满足题目条件,即卫星数目不够图连通,也就是连通块的数量大于卫星数,那么这个数的上一个边权,就是我们要找的最小的$d$, 其实这个是满足单调性的可以进行二分。 ​ 我们可以将题目抽象为:找到最小的$d$, 阅读全文
posted @ 2023-05-06 21:06 Jack404 阅读(61) 评论(0) 推荐(0)
牛站 类Floyd-dp + 矩阵快速幂

摘要:题目 牛站 思路 ​ 首先题目没有给总共有多少点, 但是告诉我们边$T \le 100$, 所以点的个数$N \le 200$, 因此如果我们考虑$bellman-ford$魔改算法,复杂度在$\Theta(NT) \le 1e8$, 所以我们先不考虑该算法, 考虑$类Floyd$算法复杂度在$O( 阅读全文
posted @ 2023-05-05 20:56 Jack404 阅读(27) 评论(0) 推荐(0)
排序 Floyd-计算传递闭包

摘要:排序 Floyd-计算传递闭包 题目 排序 思路 ​ 考虑$d[i][j]$只有两种边权$0/1$, $0$表示$i$和$j$的关系未知, $1$表示$i < j$ (即$d[i][j]$表示两点之间是否连同的问题) ​ 第一种情况是已经排序好,第二种是存在环的情况 (例如$i < j$ ,$j < 阅读全文
posted @ 2023-05-04 20:44 Jack404 阅读(45) 评论(0) 推荐(0)
观光之旅 Floyd-求最小环

摘要:观光之旅 Floyd 求最小环 题目 观光之旅途 思路 ​ 设路径$u_i \rightarrow u_w \rightarrow u_j \rightarrow \dots \rightarrow u_i$ 表示环$S$, 其中$w$表示路径中编号最大的点,且$i$和$j$ 是直接连接$w$点,那 阅读全文
posted @ 2023-05-04 20:06 Jack404 阅读(19) 评论(0) 推荐(0)
01分数规划

摘要:01分数规划 题目 观光奶牛 思路 ​ 在图论问题中,求(一堆的和 / 一堆的和)这样的问题我们称之为$01$分数规划,一般我们都采用二分来做。 ​ $\frac{\sum f_i}{\sum t_i}$ , 其中$f_i$表示点权,$t_i$表示边权。 $$ \frac{\sum f_i}{\su 阅读全文
posted @ 2023-04-21 20:11 Jack404 阅读(18) 评论(0) 推荐(0)
最近公共祖先学习

摘要:最近公共祖先学习 定义 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 为了方便,我们记某点集 $S={v_1,v_2,\ldots,v_n}$ 的最近公共祖先为$LCA(v_1, v_2, \dots, 阅读全文
posted @ 2023-04-19 21:16 Jack404 阅读(20) 评论(0) 推荐(0)
智能护理中心统计 DFS+懒标记删除

摘要:智能护理中心统计 题目 智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“管理结点”。现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统 阅读全文
posted @ 2023-04-17 11:16 Jack404 阅读(141) 评论(0) 推荐(0)
牛的旅行 Floyd

摘要:牛的旅行 题目 牛的旅行 思路 ​ 先跑一边Floyd,再分别求每个连通块内的最短距离的最大值,$dmax[i]$ 表示$i$节点的最短距离的最大值$ans1 = max(ans1, dmax[i])$, 然后再对$d[x][y] = +\infin$的点求$ans2 = min(ans2, max 阅读全文
posted @ 2023-04-15 12:00 Jack404 阅读(9) 评论(0) 推荐(0)
观光 拆点+Dijkstra(求次短路条数)

摘要:观光 题目 观光 思路 ​ 最短路计数的拓展,和拯救大兵瑞恩一样,需要我们拆点,然后在对拆后的点进行Dijkstra, 将一个点的状态拆为最短距离和次短距离,同样可能存在环形依赖,我们可以跑Dijkstra来进行状态的递推,对比最短路计数,我们只需要在加一个次短路的状态,每次状态更新的时候,如果当前 阅读全文
posted @ 2023-04-15 10:19 Jack404 阅读(17) 评论(0) 推荐(0)
关于最短路算法的拓扑序列

摘要:关于最短路算法的拓扑序列 最短路计数问题 题目 最短路计数 思路 我们考虑依赖方式(动态规划的思想): 1. 先求出**全局最小值**是多少 2. 再分别求出每个子集中**等于全局最小值**的元素个数 如果存在环形依赖关系的话,这样并不能求出最终的数量。 我们举例环形依赖问题: ​ 小王欠小张100 阅读全文
posted @ 2023-04-14 19:52 Jack404 阅读(30) 评论(0) 推荐(0)
拯救大兵瑞恩 拆点+双端队列BFS

摘要:拯救大兵瑞恩 题目 拯救大兵瑞恩 思路 ​ 我们可以先状压DP的思维思考,$dp[x][y][state]$ 表示了再$(x, y)$位置有钥匙状态为$state$的最短距离,考虑到$key$最多只有$10$种,$10 \times 10 \times 2^{10}$≈$1e6$, 足以开这么大的数 阅读全文
posted @ 2023-04-14 08:38 Jack404 阅读(17) 评论(0) 推荐(0)
选择最佳路线

摘要:选择最佳路线 题目 选择最佳路线 思路 ​ 比较简单的题,可以建立虚拟源点或者建立反向边,都是比较简单的思路,这里直接上各种思路的代码 Code Dijkstra建立反向边 #include <iostream> #include <cstring> #include <queue> using i 阅读全文
posted @ 2023-04-13 11:28 Jack404 阅读(17) 评论(0) 推荐(0)
最优贸易-SPFA+思维

摘要:最优贸易 最贸易 思路 ​ 设我们可以以$i$为分界点,分别求经过$[1, i]$的路径的最低价格,和$[i, n]$的最高价格, 相减便可以得到以以$i$为分解点的最短路径,这样遍历所有分解点可以得到答案, 对于上述做法左右两边都是可以任意走的,也可以当天买当天卖, 那么可以用dp来求吗,显然图中 阅读全文
posted @ 2023-04-13 10:34 Jack404 阅读(34) 评论(0) 推荐(0)
道路与航线 Dijkstra+DAG求最短路

摘要:道路与航线 题目 道路与航线 思路 ​ 一开始想的是SPFA, 平均情况$O(M)$, 但是最坏是$N \times M$, 提交后超时了。开始思考题目中的边和相关条件 1. 道路**无向**,且为**正权边** 1. 航线**有向**,且可能存在**负权边**,另外航线不存在回路,即为$DAG(有 阅读全文
posted @ 2023-04-12 19:21 Jack404 阅读(16) 评论(0) 推荐(0)
通信线路-二分+双端队列BFS

摘要:通信线路-二分+双端队列BFS 题目 通信线路 思路 ​ 理解一下题意,找到一条路径使得,源点到终点的路径中第$k + 1$大的边权最小,也就是下图标注的$(1->2->5)$的路径花费为$4$. ​ 求最大值最小显然我们可以想到二分答案,那么如何二分那,我们先设一个$x$, 对于$> x$ 的边权 阅读全文
posted @ 2023-04-12 09:45 Jack404 阅读(17) 评论(0) 推荐(0)
双端队列BFS-电路维修

摘要:双端队列BFS ​ 对于图中只存在边权为$0, 1$的边,我们可以考虑双端队列优化Dijkstra, 即我们用一个双端队列来维护Dijkstra中堆的性质,具体做法如下: ​ 如果当前更新边的边权为$0$,那么我们可以将其插入到队首 ​ 如果边权为$1$我们可以将其插入到队尾 对于上面的做法, 我们 阅读全文
posted @ 2023-04-12 09:14 Jack404 阅读(34) 评论(0) 推荐(0)
蓝桥杯-网络分析-带权并查集

摘要:网络分析 题目 网络分析 思路 ​ 一开始考虑每次dfs, 然后进行memset(),复杂度为$O(m \times N \times M)$, 只拿了50分, 看了网上的题解,如果不用带权并查集的话,维护并查集内所有的点,复杂度$O(m \times N)$ 可以拿70分, 下面考虑正解带权并查集 阅读全文
posted @ 2023-04-07 19:19 Jack404 阅读(33) 评论(0) 推荐(0)
最接近神的人 树状数组(离散化)-逆序对

摘要:最接近神的人 树状数组(离散化)-逆序对 题目 破解了符文之语,小FF开启了通往地下的道路。当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古代人进行某种活动的图案。而石门上方用古代文写着“神的殿堂”。小FF猜想里面应该就有王室的遗产了。但现在的问题是如何打开这扇门…… 仔细研究后,他发现门 阅读全文
posted @ 2023-04-03 11:30 Jack404 阅读(13) 评论(0) 推荐(0)
青蛙过桥 DP + 字典序

摘要:青蛙过桥 DP + 字典序 题目 一座长度为n的桥,起点的一端坐标为0,且在整数坐标i处有a[i]个石头【0<=a[i]<=4】, 一只青蛙从坐标0处开始起跳,一步可以跳的距离为1或2或3【即每一步都会落在整数点处】, 青蛙落在i处会踩着该点的所有石头,求青蛙跳出这座桥最少踩多少个石头?并且输出依次 阅读全文
posted @ 2023-04-03 11:24 Jack404 阅读(66) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3