随笔分类 - 图论
摘要:题目做完之后感觉 这个题应该是需要一些数学思想 题解看这个博客:链接代码如下#include#include#include using namespace std; #define in = read(); typedef long long ll...
阅读全文
摘要:基本介绍 模板题目 代码实现基本介绍终于来填Prim的坑了 代码实现和最短路的Dijkstra差不多 也用的堆优化 大体意思就是说 现在图中选取一个蓝点染成白色 然后遍历与这个点相连的所有边 选取最短的边然后将另一个端点染成白色 再遍历这个点 从所有白点中找最短的 ...
阅读全文
摘要:题目一个变形的最短路问题 我们可以在每次寻找最短路的时候都去维护一个当前的最小花费 当我们知道当前找的这条边不是被摧毁的边的时候 我们则需要在pay[edge[i].to]和pay[u]中找一个较小的而不用再考虑这条边的长度 用的刚学的堆优化dijkstra 代码如下...
阅读全文
摘要:基本介绍模板题目代码实现基本介绍终于来发堆优化的迪杰斯特拉了 普通的迪杰斯特拉复杂度是O(n^2)的 感觉对于数据大的题和弗洛伊德没什么两样吧 但是堆优化后能到O((m+n) log n) 还比较不错 但不能去搞图中有负边权的情况 我的代码采用了大佬Zheng.HT的...
阅读全文
摘要:题目描述 辉辉热衷于洞穴勘测。 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴...
阅读全文
摘要:基本介绍模板题目代码实现基本介绍Tarjan离线算法 这里用来做最近公共祖先 本来是想写一下Tarjan的做法 但是这个博客太好了(Vendetta BlogsJVxie的个人博客) 放这里一起学习吧模板题目题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最...
阅读全文
摘要:题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接。这些道路是双向的,且把所有的交叉路口直接或间接的连接起来...
阅读全文
摘要:基本介绍模板题目代码实现基本介绍最小生成树问题一般有两种解法 Prim和Kruskal 因为之前学过并查集所以果断选择先学后者Kruskal是一种利用并查集来求解最小生成树的算法 它将每一个联通块当作一个集合 先将边按从小到大的顺序排序 现在每一个点都是孤立的 并且...
阅读全文
摘要:图的邻接表存储法 又叫链式存储法 可以用数组模拟定义struct edge{ int next; //下一条边的编号 int to; //这条边到达的点 int dis; //这条边的长度 }edge[size];//COY...
阅读全文
摘要:基本介绍模板题目代码实现基本介绍求最短路径是挺重要的一个图论基础知识一般的话有这几种方法:Floyed Dijkstra SPFA(和Ford)差不多… Dij我没有学 只学了Floyed和SPFA 所以先说这两个Floyed 最简单的方法 适用于负边权 适用于任何路...
阅读全文
摘要:题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。输入...
阅读全文
摘要:基本介绍模板题目代码实现基本介绍并查集这个东西 其实挺简单的 它是一种用于分离集合操作的抽象数据类型 它处理的是集合之间的关系 即动态地维护和处理集合元素之间的复杂的关系 当然它也能够完成很多的操作 在此不多说了 并查集本身不具有结构 必须借助一定的数据结...
阅读全文

浙公网安备 33010602011771号