随笔分类 -  图论/数据结构-最小生成树

摘要:题意:多组询问,每组询问求无向图中两个结点间最小瓶颈路的最大边权 算是带权并查集的一道板子题吧,首先用kruskal算法构建最小生成树,构建过程中并查集按秩合并,同时每个点记录一个cost值,表示把该点与父亲结点合并所需的最小代价,那么两点间最小瓶颈路的最大边权就是带权并查集上两点之间路径的最大边权 阅读全文
posted @ 2021-04-05 11:26 jrltx 阅读(54) 评论(0) 推荐(0) 编辑
摘要:有这样一类问题(例:loj121,122),要求在无向图中实现如下操作: 1.增加一条边 2.删除一条边 3.询问两点是否连通 这类问题有离线做法和在线做法,两者的思想完全不同 离线做法的思想是,考虑到每一条边存在的时间范围是一个区间,在线段树对应的区间打上标记,然后从根节点自顶向下dfs,每访问一 阅读全文
posted @ 2021-04-04 18:20 jrltx 阅读(1367) 评论(0) 推荐(0) 编辑
摘要:题目链接 留坑,题解之后再补 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef double db; 5 const int N=3e5+10; 6 struct E { 7 int 阅读全文
posted @ 2021-04-03 20:16 jrltx 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题意是有一张无向连通图,边带权,每走过一条边需要消耗一定的电量。有k个关键点可以充满电,问从一个关键点走到另一个关键点,需要的电池容量至少是多少。 首先可以分析一下极端情况: 1.k=2:问题转化成求两点间最短路 2.k=n:问题转化成求最小生成树 所以要把两者综合起来考虑。 首先对所有关键点求一个 阅读全文
posted @ 2020-03-05 10:46 jrltx 阅读(381) 评论(0) 推荐(0) 编辑
摘要:题目大意:给出一个n*n的矩阵,有一些点是障碍,给出Q组询问,每组询问求两点间能通过的最大正方形宽度。 首先需要求出以每个点(i,j)为中心的最大正方形宽度mxl[i][j],可以用二维前缀和+二分或者BFS求。 然后每相邻的两个点建一条权值为min(mxl[i][j],mxl[i'][j'])的边 阅读全文
posted @ 2019-10-04 19:24 jrltx 阅读(408) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示