
图论
文章平均质量分 84
Yueliang月亮
这个作者很懒,什么都没留下…
展开
-
DFS+BFS(模板+习题汇总)
第一行:咕咕咕。第二行:补一下这个,不然复习的时候还得现找模板。第三行:未完待续一、DFS模板1:递归+邻接矩阵#include <iostream>#include <cstdio>#include <queue>#include <ctime>#include <algorithm>#include <cmath>#include <cstring>using namespace s原创 2020-11-09 20:10:44 · 1209 阅读 · 0 评论 -
最短路(3)——SPFA+Bellman-Ford算法//洛谷P1744+洛谷P3385
第一行照例留给本鸽子精咕咕咕。以下为正文:首先:所有无负环单纯求最短路,优先用floyd或dijkstra!spfa太容易tle了,根据数据范围理智选择!其次:两种算法都可拓展为求最长路,初始化dis为0,每次判断大于即更新。或者判断是否存在负环,如果n-1次后还可以进行dis往小的方向更新,即可说明存在负环。或者是求正环,也是跑最长路,n-1后还可以往大的方向更新即可说明有正环...原创 2019-08-08 21:01:06 · 666 阅读 · 3 评论 -
最小生成树(2)——prim算法//HDU1223+SDNU1229
第一行国际惯例咕咕咕。第二行——欠的东西总是要还的——来自一个上次写kruskal把prim抛之脑后然后忘了的人。以下是正文:1.prim的思路也是贪心,不过以点为主2.先任意选取一点标记为访问过,找到与其相连的mincost的点,放到集合内,标记为访问过3.遍历集合内的点,找到与任一点相连的mincost(且需未访问过)4.重复上面的步骤5.当有n个点 or n...原创 2019-07-27 10:36:11 · 236 阅读 · 0 评论 -
最短路(2)——Dijkstra算法+与prim算法区别//洛谷P1359
第一行照例留给本鸽子精咕咕咕。以下为正文:思路:dijkstra算法同样采用贪心的策略,采用局部最优解找全局最优解。从当前点出发,找到与其相连的最短路,再从当前点出发,更新最短路,直到终点被放入集合。集合内表示当前最短路(用dis[i]表示初始点到第i个点的最短路),之后在此基础上找下一条路。(我怎么觉得这有点像prim)(我怎么觉得这就是prim)相比较dijkstra和pri...原创 2019-08-07 16:54:57 · 486 阅读 · 1 评论 -
图的存储与遍历
第一行照例留给本鸽子精咕咕咕。第二行感谢耐心给我讲图到很晚的mfz师哥。第三行感谢认真讲图的csb师哥。图的储存——1.lin’jie原创 2019-03-02 15:34:45 · 1018 阅读 · 0 评论 -
最小生成树(1)——kruskal算法//SDNU1218
第一行国际惯例——咕咕咕。本代码以sdnu1218为例1.类似贪心的策略,先对边按权值进行排序,不停的选择最优边进行构建树2.在构建过程中需要判断是否有环(并查集判断(如果不会并查集(我改天再补一下并查集博客3.忽略我特别丑的代码风格4.可以增加优化(在kruskal函数的循环里加一个提前跳出的操作,当边的个数>n-1时跳出即可(n为点的个数(最小生成树最多n-1条边(此处略过5...原创 2019-05-20 22:18:35 · 298 阅读 · 0 评论 -
最短路(1)——Floyd算法//洛谷2910
第一行国际惯例——咕咕咕。1.floyd算法原理是动态规划2.时间复杂度是O(n^3)(n是点的个数3.适用于点比较少的情况4.适用于多源最短路(跑完floyd后直接输出数组即可得到从x到y的最短路本代码以洛谷2910为例与普通模板不同的是,2910多了一个规定路径,只需累加即可。#include <iostream>#include <cstdio>#i...原创 2019-05-21 21:35:39 · 699 阅读 · 1 评论 -
并查集//POJ1182
第一行:咕咕咕。第二行:我原以为并查集很简单的。原以为。因此我现在一看到说并查集“简单有趣”的博客就心情复杂(不排除对人家来说真的简单有趣)。(本博客下次更新会附送简单并查集缓解心情)第三行:谁能想到一道并查集我花了两个晚上呢。第四行:这道题需要多多复习,我现在也不是特别明白。第五行:还是小白书友好一些。第六行:真正的勇士,敢于wa题二十次。并查集:快速判断两个或多个元素的关系,快速合...原创 2019-05-23 21:44:17 · 164 阅读 · 0 评论 -
SDNU1031字母排序(拓扑排序)
第一行——咕咕咕。第二行感谢csb师哥。先附题目链接SDNUOJ1031这是一道拓扑排序题,不会的指路博客拓扑排序说一下思路:1.统计每个字母的入度(按0~25代表A~Z(每次都需要更新2.当出现环就说明出现了矛盾3.如果队列中存在两个及以上可被取出的字符,即入度为0有两个及以上,则为无法确定全部字母的顺序(这句是csb师哥说的4.如果最后的序列,长度小于n输...原创 2019-06-09 19:06:05 · 471 阅读 · 5 评论 -
欧拉回路(一笔画问题)(无向图)//HRBUST1658
第一行国际惯例——咕咕咕。第二行——你还差的远呢。本篇博客只针对无向图(我还没做过有向图的题首先是两个定义(欧拉回路和欧拉路径欧拉回路:每条边恰好只走一次,并能回到出发点的路径欧拉路径:经过每一条边一次,但是不要求回到起始点1.构成欧拉回路的要求:每个顶点的度数都是偶数,则存在欧拉回路。2.构成欧拉路径的要求:除了起始终止两个点度数为奇数,其余顶点的度数都...原创 2019-07-18 19:28:21 · 684 阅读 · 0 评论 -
欧拉回路(一笔画问题)(有向图)//SDNUOJ1088
第一行——咕咕咕。第二行——我胡汉三又回来啦!这次的欧拉回路针对的是有向图。(个人觉得比无向图简单嘻嘻有向图构成欧拉路径:除了起始终止点,其他点的出度入度相等。有向图构成欧拉回路:所有点的出度入度相等。题目链接SDNU1088代码#include <iostream>#include <cstdio>#include <cst...原创 2019-07-18 20:40:45 · 1172 阅读 · 0 评论 -
笛卡尔树//2019牛客暑期多校第一场A题Equivalent Prefixes
第一行国际惯例——咕咕咕。第二行——我真的啥啥都不会啊qwq。笛卡尔树:1.二叉树2.从数列中构造时可以在线性时间内完成,而且可以找到数列中的最近小数3.key值——每个节点的左子树比其小,右子树比其大;value——每个节点都比其子树的value大4.用单调栈进行维护,始终保存的是右链,即:根,右儿子,右儿子的右儿子……并且从栈顶到栈底,key依次减小5.多用于...原创 2019-07-19 11:31:14 · 194 阅读 · 0 评论