HDU1595(枚举+最短路(dijkstra))
来源:互联网 发布:gamestop it 编辑:程序博客网 时间:2024/04/19 04:55
题意不多说了。。思路就是先走一遍dijkstra,然后p数组记录下路径,然后枚举路径上的边删去之后走dijkstra得到的最短路(想想为什么?我当时做的时候是枚举了图每条边,然后就超时),取最大值。
#include <stdio.h>#include <iostream>#include <algorithm>#include <string.h>#include <string>#include <vector>#define maxn 1005#define INF 999999999using namespace std;int n,m;int map[maxn][maxn];int dis[maxn];int vis[maxn];int p[maxn];void dijkstra(int f){ int i,j,mini,flag; for(i=1;i<=n;i++) dis[i]=INF; dis[1]=0; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { mini=INF; for(j=1;j<=n;j++) { if(!vis[j] && dis[j]<mini) { mini=dis[j]; flag=j; } } if(mini==INF) return; vis[flag]=true; for(j=1;j<=n;j++) { if(!vis[j] && map[flag][j]+dis[flag]<dis[j]){ dis[j]=map[flag][j]+dis[flag];if(f)p[j]=flag;} } }}int main(){ while(scanf("%d%d",&n,&m)!=EOF) {memset(p,0,sizeof(p)); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { map[i][j]=INF; map[i][i]=0; } } for(int i=0;i<m;i++) { int u,v,l; scanf("%d%d%d",&u,&v,&l); if(map[u][v]>l) { map[u][v]=map[v][u]=l; } }dijkstra(1);int Max=dis[n];for(int i=n;i!=1;i=p[i]){int t=map[i][p[i]];map[i][p[i]]=map[p[i]][i]=INF;dijkstra(0);Max=max(Max,dis[n]);map[i][p[i]]=map[p[i]][i]=t;} printf("%d\n",Max); } return 0;}/*5 61 2 41 3 32 3 12 4 42 5 74 5 16 71 2 12 3 43 4 44 6 41 5 52 5 25 6 55 71 2 81 4 102 3 92 4 102 5 13 4 73 5 10*/
0 0
- HDU1595(枚举+最短路(dijkstra))
- hdu1595(枚举+最短路,Dijkstra/SPFA)
- HDU1595 find the longest of the shortest(最短路,Dijkstra)
- hdu1595(枚举+最短路(删掉任意一条边的最长最短路)-MB
- hdu1595 dijkstra
- SCU 4526 最短路(dijkstra+枚举+BFS)
- [POJ 1062] 昂贵的聘礼 [最短路+枚举] [dijkstra]
- HDU1595 find the longest of the shortest(最短路)
- 最短路 Dijkstra算法
- 最短路之dijkstra
- hdu1874 Dijkstra 最短路
- HUD最短路 (Dijkstra)
- hdu2544 Dijkstra最短路
- 最短路之Dijkstra
- 图论 最短路 Dijkstra
- Dijkstra 求最短路
- dijkstra最短路 hdu2066
- Dijkstra 求最短路
- nginx学习之 双向链表nginx_queue_t 性能测试: 10倍于STL!
- android 各种格式的文件调用对应应用
- linux系统下MYSQL备份恢复(主要看红色字体部分)
- hadoop常见错误以及处理方法
- 【喷水装置(二) 区间覆盖 贪心。】
- HDU1595(枚举+最短路(dijkstra))
- oracle 多表插入
- Makefile 编写
- 一步步学习微软InfoPath2010和SP2010--第二章节--表单需求:使用决策矩阵(7)--使用决策矩阵
- 【UI设计】 TIME
- 记得调用SubmitChanges()方法
- DECODE函数
- css对select的美化操作
- NYOJ-24-素数距离问题