![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论--最短路
AliceBuJu
这个作者很懒,什么都没留下…
展开
-
【codevs 1557】热浪(SPFA)
SPFAinclude<cstdio>#include<iostream>#include<queue>#include<algorithm>#include<cstring>#include<cmath>using namespace std;queue<int>q;int n,m,tot=0;const int maxn=6200+5;int first[maxn],next原创 2017-08-09 09:49:47 · 325 阅读 · 0 评论 -
【洛谷 P2656】采蘑菇
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<queue>#include<stack>using namespace std;int n,m;stack<int>s;int ss;struct edge{ int f,t,s; double c;}原创 2017-10-31 07:08:41 · 314 阅读 · 0 评论 -
【codevs 1183】泥泞的道路
二分答案+spfa找正环边权的确定: 因为(S1+S2+…+Si)/(T1+T2+…+Ti)=ans 所以S1-T1*ans+S2-T2*ans+S3-T3*ans+…+Si-Ti*ans=0 如果S1-T1*ans+S2-T2*ans+S3-T3*ans+…+Si-Ti*ans>0 ,则增加ans。 否则,减小ans。作法: 首先二分ans,将边权设为Sn-Tn*ans。 然后通过s原创 2017-09-02 20:11:18 · 447 阅读 · 0 评论 -
【清北】【笔记】图论
欧拉回路经过整个图的所有边的路径。连通图令无向图G=(V,E),如果∀x,y∈V,x和y之间都存在路径。强连通图令有向图G=(V,E),如果∀x,y∈V,x到y都存在路径。图的遍历有2种最简单的方法: 深度优先搜索(DFS)和广度优先搜索(BFS) 前者的原则是建立一个栈,只要栈顶结点u还有相邻的点v未入过栈,就把v入栈,遍历v,继续递归地搜索,当栈顶结点u的相邻结点都入过栈时,将u出栈。 后原创 2017-10-06 10:08:23 · 289 阅读 · 0 评论 -
【codevs 1557】热浪(Dijkstra)
#include<cstdio>#include<iostream>#include<algorithm>#include<queue>#include<cstring>using namespace std;int n,m,ts,te;const int maxn=200005;int first[maxn],next[maxn<<1],tot=0;int dis[maxn];原创 2017-09-02 16:43:58 · 258 阅读 · 0 评论 -
【codevs 1021】玛丽卡
最短路问题。先找出1-n的最短路,依次把路上的一条路径去掉,求出并记录最短路,取最大值。 注意:去掉某一条路径时要先恢复上一条路径。#include<cstdio>#include<queue>#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int maxn=1000+5,m原创 2017-09-02 08:07:34 · 227 阅读 · 0 评论 -
【codevs 1269】匈牙利游戏
用spfa求次短路 考虑三种情况更新: 1. x的最短路+v < t的最短路 < t的次短路。 那么就让 t的次短路=t的最短路,t的最短路=x的最短路+v。(注意顺序) 2. t的最短路 < x的最短路+v < t的次短路。 那么就让 t的次短路=x的最短路+v 。 3. t的最短路 < x的次短路+v < t的次短路。 那么就让 t的次短路=x的次短路+v。 PS: 不考虑原创 2017-09-23 21:47:51 · 312 阅读 · 0 评论 -
【codevs 1077】多源最短路
floyd#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int maxn=100+5;int a[maxn][maxn],dis[maxn][maxn];int n,times;int main(){原创 2017-09-23 18:31:24 · 269 阅读 · 0 评论 -
【codevs 2273】扬帆远洋大战牧师妹酱
spfa+slf#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<queue>#include<cstring>using namespace std;int T,R,P,S;const int maxn=200000+5;deque<int>q;bool used[maxn]原创 2017-09-23 15:45:23 · 379 阅读 · 0 评论 -
禁地
考试题目原创 2017-08-11 15:11:05 · 267 阅读 · 0 评论 -
【codevs 1961】躲避大龙
spfa#include<cstdio>#include<iostream>#include<queue>#include<cstring>using namespace std;const int maxn=70000+5;int n,m;struct edge{ int f,t,v;}es[maxn<<1];struct hehe{ int p,v;};原创 2017-10-14 21:18:07 · 211 阅读 · 0 评论