[codevs1269] 匈牙利游戏
来源:互联网 发布:数据库读写分离实现 编辑:程序博客网 时间:2024/06/16 17:34
题目描述Description
输入描述 Input Description
输出描述 Output Description
样例输入 Sample Input
样例输出 Sample Output
数据范围及提示 Data Size & Hint
题解
借鉴了hzwer和网上的做法。。此题是个次短路的模板题
分三种情况更新
1.可以更新最短路 :原最短路变为次短路 更新最短路
2.可以更新次短路但不能更新最短路 :更新次短路
3.次段路也可以更新次段路:那么更新次短路
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#define N 20005#define inf 1<<29#define ll long longusing namespace std;int n,m,head[N];ll d[N],d2[N];int flag[N],cnt;queue<int>q;struct node{int to,w,next;}e[100005];void insert(int x,int y,int z){e[++cnt].to=y;e[cnt].w=z;e[cnt].next=head[x];head[x]=cnt;}void spfa(int s){for(int i=1;i<=n;i++)d[i]=d2[i]=inf;d[s]=0;//次短路起点不用为0flag[s]=1;q.push(s);while(!q.empty()){int k=q.front();q.pop();flag[k]=0;for(int i=head[k];i;i=e[i].next){int kk=e[i].to;if(d[kk]>d[k]+e[i].w){d2[kk]=d[kk];d[kk]=d[k]+e[i].w;if(!flag[kk]){flag[kk]=1;q.push(kk);}}//如果可以更新最短路,那么就让它更新吧//更新后的最短路是最短路,更新之前的最短路是当前的次短路else if(d2[kk]>d[k]+e[i].w&&d[kk]<d[k]+e[i].w){d2[kk]=d[k]+e[i].w;if(!flag[kk]){flag[kk]=1;q.push(kk);}}//如果不能更新最短路,但是可以更新次短路,那么就让它更新吧if(d2[kk]>d2[k]+e[i].w){d2[kk]=d2[k]+e[i].w;if(!flag[kk]){flag[kk]=1;q.push(kk);}}//次短路可以更新次短路,那么就让它更新吧}}}int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);insert(u,v,w);}spfa(1);if(d2[n]!=inf)printf("%d\n",d2[n]);else printf("-1\n");return 0;}
阅读全文
0 0
- 【codevs1269】匈牙利游戏
- Codevs1269 匈牙利游戏
- [codevs1269] 匈牙利游戏
- Codevs1269 匈牙利游戏 次短路spfa
- codevs1269匈牙利游戏(spfa跑次短路)
- 匈牙利游戏
- wikioi 1269 匈牙利游戏
- 【codevs 1269】匈牙利游戏
- 【codevs 1269】匈牙利游戏
- codevs 1269 匈牙利游戏
- codevs 1269 匈牙利游戏
- 【codevs 1269】匈牙利游戏
- 【codevs 1269】匈牙利游戏
- 棋盘游戏(匈牙利算法)
- SCOI2010游戏[匈牙利算法复习]
- 匈牙利游戏之A*版
- hdu 1281棋盘游戏 匈牙利算法
- 1059: [ZJOI2007]矩阵游戏 (匈牙利)
- 面向对象设计原则概述
- 如何写一个漂亮的Liferay Theme 6.2
- PLC的基本工作原理简要介绍
- RPC与RMI的区别
- 图像融合(四)-- 对比度金字塔
- [codevs1269] 匈牙利游戏
- 关于浮点数的存储方式探讨
- xv6 locking
- spring+mybatis在读取配置文件时不识别占位符的问题。
- 读书笔记 JAVA编程思想 第13章 字符串
- Java8中的静态接口方法
- 关于页面路径对,但引用js、css等总是报404的原因
- Android 开发最佳实践
- 自顶向下深入分析Netty(四)--优雅退出机制