codevs 1269 匈牙利游戏
来源:互联网 发布:淘宝虚拟市场清退标准 编辑:程序博客网 时间:2024/06/05 23:28
codevs 1269 匈牙利游戏
题目大意:求次短路
数据范围:2≤n≤20000,1≤m≤100000,1≤L≤10000
思路:spfa的时候在更新最短路的时候顺便更新一下次短路就好了。
题解:
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;const int maxn=1000000;int n,m; struct cc{ int from,to,cost;}es[maxn];int first[maxn],next[maxn];bool vis[maxn];int tot=0;void build(int ff,int tt,int pp){ es[++tot]=(cc){ff,tt,pp}; next[tot]=first[ff]; first[ff]=tot;}int dis1[maxn],dis2[maxn];queue<int>q;void spfa(int s){ dis1[s]=0; vis[s]=1; q.push(s); while(!q.empty()) { int u=q.front(); q.pop(); vis[u]=0; for(int i=first[u];i;i=next[i]) { int v=es[i].to; if(dis1[v]>dis1[u]+es[i].cost)//能更新最短路 { dis2[v]=dis1[v]; dis1[v]=dis1[u]+es[i].cost; if(!vis[v]) { q.push(v); vis[v]=1; } } else if(dis1[v]<dis1[u]+es[i].cost)//不能更新最短路但能更新次短路 { if(dis2[v]>dis1[u]+es[i].cost) { dis2[v]=dis1[u]+es[i].cost; if(!vis[v]) { q.push(v); vis[v]=1; } } } else if(dis2[v]>dis2[u]+es[i].cost)//通过次短路更新次短路 { dis2[v]=dis2[u]+es[i].cost; if(!vis[v]) { q.push(v); vis[v]=1; } } } }}int main(){ memset(dis1,63,sizeof(dis1)); memset(dis2,63,sizeof(dis2)); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int x,y,z; scanf("%d%d%d",&x,&y,&z); build(x,y,z); } spfa(1); if(dis2[n]>1000000000) { printf("-1"); } else { printf("%d",dis2[n]); } return 0;}
2 0
- 【codevs 1269】匈牙利游戏
- 【codevs 1269】匈牙利游戏
- codevs 1269 匈牙利游戏
- codevs 1269 匈牙利游戏
- 【codevs 1269】匈牙利游戏
- 【codevs 1269】匈牙利游戏
- codevs 1269 匈牙利游戏 SPFA+次短路
- codevs 1269 匈牙利游戏(次短路)
- 【CodeVS】1269 匈牙利游戏 最短路 次短路 SPFA
- Codevs 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛
- wikioi 1269 匈牙利游戏
- 匈牙利游戏
- 【codevs1269】匈牙利游戏
- Codevs1269 匈牙利游戏
- [codevs1269] 匈牙利游戏
- 【codevs 1022】覆盖(匈牙利算法)
- CodeVs 1148 传球游戏
- CODEVS-1051 接龙游戏
- 2013年长沙区域赛-HDU 4791-Alice's Print Service
- C语言关于文件概述
- KVO 和 NSNotificationcenter addObserver 和removeObserve成对出现的原因
- linux virt res shr这是值很大代表什么
- HDU1575 矩阵快速幂入门
- codevs 1269 匈牙利游戏
- leetcode-226. Invert Binary Tree 二叉树、递归,交换两个变量的值
- Android Studio报错:Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version
- android 基础 serialization,Transient
- NewSQL数据库大对象块存储原理与应用
- mysql: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/sha
- return语句的使用
- Maven项目报错
- 基础类库:StringBuffer、StringBuilder类