![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
ZBoWing
这个作者很懒,什么都没留下…
展开
-
最短路及其延伸
最短图想必最短路大家都很熟悉,那么我们就先对最短路两个重要的算法总结一下;PrimPrim其实就是以DP为基础的最短路算法,通过两个节点的中介转折点来更新两点之间的最短路。从而解决任意两点的最短路,时间复杂度是O(n^3);具体实现过程如下:mp[Maxn][Maxn];//两点之间的最短路 for(int k=1;k<=n;++k)//k枚举状态所以必须在外层循环 for(...原创 2019-07-13 09:30:59 · 157 阅读 · 0 评论 -
最小生成树与建边技巧(一本通提高篇#新的开始)
直接看题面吧:发展采矿业当然首先得有矿井,小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了n口矿井,但他似乎忘记考虑的矿井供电问题……为了保证电力的供应,小 FF 想到了两种办法:1.在这一口矿井上建立一个发电站,费用为wi (发电站的输出功率可以供给任意多个矿井)。2.将这口矿井与另外的已经有电力供应的矿井之间建立电网,费用为ei 。小 FF 希望身为「NewBe_One」计划...原创 2019-07-28 11:31:36 · 308 阅读 · 0 评论 -
【机房模拟赛】Party
其实这道题是个水题,我当初看一眼就想出了正解,:记录每个点的度数,若果小于题目要求的度数d,则删去这个点以及这个点连的边。继续,知道图中的点全部符合要求为止,最后在遍历整个剩下的图,从中找一个最大连通块即可。代码如下:#include<bits/stdc++.h>using namespace std;const int maxn = 200100;int n,m,d;...原创 2019-08-23 20:39:27 · 109 阅读 · 0 评论 -
【题解】【Luogu1703最优贸易】最短路
我们在做这道题时正反图要同时建立,然后从起点出发,跑一遍DJ处理出权值最小的点F[x],再反着跑一遍处理出权值最大的点,D[x]。再枚举每个点,用D[x]-F[x]跟新答案即可。#include<bits/stdc++.h>#define maxn 510000using namespace std;priority_queue< pair < int , ...原创 2019-09-06 21:45:59 · 165 阅读 · 0 评论 -
【题解】【luogu2939】分层图最短路
分层图分层图是针对于对图的边权有强制性修改的一类问题(修改次数较少);它的思想其实就是拆点。以上面这道题为例:将k条边的权值变为0;将原图建为k层每一个层内之间的边权不变,跨层的边权设为0;这样就实现了分层图;再在分层图上跑一边最短路就可以了;代码如下:#include<bits/stdc++.h>using namespace std;const int ...原创 2019-10-01 11:04:55 · 203 阅读 · 1 评论 -
【SNOI2017】炸弹(线段树优化建边+Tarjan缩点+拓扑排序)
这道题如果强行爆搜的话时间复杂度应该是N^2的,所以我们要考虑怎么优化。线段树优化这就是这道题的主要方法:给一个区间连边而不是区间里的每一个点,这样的话时间复杂度就会降成log的复杂度,变成了nlogn,这个复杂度在我们可接受范围之内。具体的来讲就是已n+1为线段树的根的编号,开始建立新的节点,如果搜到了叶子节点,它的编号就变成了自己原来的编号,每当要向区间连边时,就从这个区间上的点连接包含...原创 2019-10-05 18:40:43 · 159 阅读 · 0 评论 -
图论总结
图论总结这几天我们将图论复习完了,现在系统的总结一下图论相关知识。我觉得图论就是分为算法应用和建图技巧。1. 最短路:最短路分为单源最短路和任意两点最短路单源最短路:单源最短路大致有两种算法:Dijkstra:这是在最短路中经常使用的算法,原本的复杂度是n方的,可以用堆优化将其优化到稳定的mlogn,不会被卡。(其实这个算法的时间复杂度为(m+n)logn)只不过省略了n,但有时后数...原创 2019-10-11 20:03:49 · 499 阅读 · 0 评论