Codevs1269 匈牙利游戏 次短路spfa
来源:互联网 发布:方舟生存进化淘宝 编辑:程序博客网 时间:2024/06/16 18:56
Codevs1269 匈牙利游戏
更新时变为3种情况:
1.最短路更新最短路;
2.最短路不能更新最短路但能更新次短路;
3.次短路更新次短路。
思考一下,就显然了。
#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>#include <queue>using namespace std;#define MAXN (100100)int V, E, tot = 0;int first[MAXN], nxt[MAXN<<1], dis1[MAXN], dis2[MAXN];bool used[MAXN];struct edge{ int from, to, cost;}es[MAXN<<1];void build(int ff, int tt, int dd){ es[++tot] = (edge){ff,tt,dd}; nxt[tot] = first[ff]; first[ff] = tot;}#define INF (1e9)queue <int> q;void sub_spfa(int s){ fill(dis1+1,dis1+V+1,INF); fill(dis2+1,dis2+V+1,INF); dis1[s] = 0; q.push(s); used[s] = 1; while(q.size()) { int x = q.front(); q.pop(); used[x] = 0; for(int i = first[x]; i != -1; i = nxt[i]) { int v = es[i].to; if(dis1[v] > dis1[x] + es[i].cost) { dis2[v] = dis1[v]; dis1[v] = dis1[x] + es[i].cost; if(!used[v]) { q.push(v); used[v] = 1; } } else if((dis1[v]<dis1[x]+es[i].cost) && (dis2[v]>dis1[x]+es[i].cost)) { dis2[v] = dis1[x] + es[i].cost; if(!used[v]) { q.push(v); used[v] = 1; } } else if(dis2[v] > dis2[x] + es[i].cost) { dis2[v] = dis2[x] + es[i].cost; if(!used[v]) { q.push(v); used[v] = 1; } } } }}int main(){ cin >> V >> E; memset(first,-1,sizeof(first)); for(int i = 1; i <= E; ++ i) { int f,t,d; scanf("%d%d%d", &f, &t, &d); build(f,t,d); } sub_spfa(1); if(dis2[V] < INF) cout << dis2[V] << '\n'; else puts("-1"); return 0;}
0 0
- Codevs1269 匈牙利游戏 次短路spfa
- codevs1269匈牙利游戏(spfa跑次短路)
- codevs 1269 匈牙利游戏 SPFA+次短路
- 【CodeVS】1269 匈牙利游戏 最短路 次短路 SPFA
- 【codevs1269】匈牙利游戏
- Codevs1269 匈牙利游戏
- [codevs1269] 匈牙利游戏
- 匈牙利游戏(次短路问题)
- codevs 1269 匈牙利游戏(次短路)
- poj3255 Roadblocks--次短路spfa
- nyoj1006(最短路次短路spfa)
- POJ3255:Roadblocks(次短路 SPFA+A星)
- POJ 3255 Roadblocks 次短路 SPFA
- poj 3255 spfa(求次短路)
- POJ 3255 Roadblock(SPFA寻找次短路)
- POJ 3255(次短路+SPFA)
- Roadblocks (SPFA次短路求法)
- poj 3255 Roadblocks(无向图次短路 SPFA)
- pthread_cond_signal与pthread_cond_wait详解
- 初识vim
- shell基础
- PO BO VO DTO POJO DAO概念及其作用
- 模板之图论
- Codevs1269 匈牙利游戏 次短路spfa
- [bzoj2654] tree
- input标签file类型,选择多个文件进行上传
- windows下phpunit安装
- TopShelf-(01)控制台实例-Program
- 细说 ASP.NET Cache 及其高级用法
- 【Hacker Rank】06.Loops
- Android中TextView不获取焦点可以实现跑马灯的效果
- 【Java每日一题】20161116