题目地址:

题解:题目意思为从起点到终点的最短路中有一条路不能通过了,求到从起点到终点的最短距离。

可以先找出从起点到终点的最短距离,并将路径保存下来,然后枚举最短路径中的所有路径,求

出从起点到终点的最短路径中最长的一条。

#include<iostream>
#include<string>
#include<queue>
using namespace std;
const int maxn = 1005;
const int INF = 200000000;
struct node
{int v,t;struct node *next;
}*head[maxn],edge[maxn*maxn];
int n,m,dis[maxn],per[maxn];
bool vis[maxn];
queue<int> que;
void spfa()
{for(int j = 1; j <= n; j++)dis[j] = INF,vis[j] = false;;dis[1] = 0;vis[1] = true;que.push(1);while(!que.empty()){int now = que.front();que.pop();vis[now] = false;for(node *p = head[now] ; p ; p = p->next){if(dis[p->v] > dis[now] + p->t){dis[p->v] = dis[now] + p->t;per[p->v] = now;//记录到点p->的前驱结点if(!vis[p->v]){vis[p->v] = true;que.push(p->v);}}}}
}
void spfa(int x,int y)
{for(int i = 1; i <= n; i++)dis[i] = INF,vis[i] = false;vis[1] = true;dis[1] = 0;que.push(1);while(!que.empty()){int now = que.front();que.pop();vis[now] = false;for(node *p = head[now] ; p ; p = p->next){if((now == y && p->v == x)||(now == x && p->v == y))//路p->v到now的路不能走continue;if( dis[p->v] > dis[now] + p->t){dis[p->v] = dis[now] + p->t;if(!vis[p->v]){vis[p->v] = true;que.push(p->v);}}}}
}
int main()
{int i;int a,b,time;while(cin >> n >> m){for(i = 1; i <= n; i++)head[i] = NULL;node *p = edge;while(m --){cin >> a >> b >> time;p->v = b;p->t = time;p->next = head[a];head[a] = p++;p->v = a; p->t = time;p->next = head[b];head[b] = p++;}per[1] = -1;spfa();int max = dis[n];for(i = n; per[i] != -1; i = per[i])//枚举最短路中的所有路径。{spfa(i,per[i]);if(dis[n] != INF && dis[n] > max)max = dis[n];}printf("%d\n",max);}return 0;
}

转载于:https://www.cnblogs.com/LUO257316/archive/2012/09/06/3220855.html

1595 hdu find the longest of the shortest相关推荐

  1. find the longest of the shortest HDU - 1595

    题意: 有一城市,这个城市有n个地点和m条连接他们的路,点的编号是从1到n,小X住在1,他想去n. 但是最近正在维修公路,也就是说这m条路有且只有一条是坏的,但是小X不知道是哪一条,一条很关键的路坏了 ...

  2. find the longest of the shortest

    题目描述: Marica is very angry with Mirko because he found a new girlfriend and she seeks revenge.Since ...

  3. (dijkstra记录路径)find the longest of the shortest

    Marica对Mirko很生气,因为他找到了一个新的女朋友,她想报仇.由于她不住在同一个城市,她开始为长途旅行做准备.我们知道每条路从一个城市到另一个城市需要多少分钟. 米尔科在车里无意中听到其中一条 ...

  4. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  5. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  6. 一系列图论问题[转]

    =============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...

  7. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  8. kk_想要学习的知识

    2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...

  9. 最短路:求最长最短路,求最短路的路径

    枚举删边跑Dijskra HDU - 1595 find the longest of the shortest #include <set> #include <map> # ...

最新文章

  1. 要学习的别人的博客网址---收藏
  2. python培训班 费用-参加线上python培训班要多少钱?
  3. QML基础类型之vector3d
  4. ADF:在任务流终结器中支持bean作用域
  5. PyCharm社区版支持深度学习_深度学习,大家都看哪些社区论坛?
  6. 三角形判断(信息学奥赛一本通-T1054)
  7. python列表中存类对象_Python DataFrame或用于存储对象的列表
  8. mysql show slave_MySQL show slave status 参考
  9. 用Python写一个滑动验证码
  10. 利用masm32输出PE文件头的基本属性
  11. Unity案例 移动汽车
  12. 虚拟机opnsense作为dhcp服务器,在OPNsense中,通过主机名或域名访问内部设备
  13. 4071 国际象棋(枚举)
  14. 对话Oneledger联合创始人Edwin Zhang
  15. aspcms cookies欺骗和后台无验证注入
  16. 微信小程序毕业设计 基于javaweb后台网上书店图书商城小程序系统毕业设计
  17. 大数据运维学习成长路线
  18. PINCTRL子系统
  19. JavaScript定时器倒计时60S的使用
  20. mysql使索引失效语句_mysql语句中索引可能失效的情况

热门文章

  1. 剑与远征赏金试炼活动将在13天后结束,工会玩法大家有尝试过吗?
  2. 浏览器登陆时纪录自动登陆时限
  3. 3ds Max制作一面飘扬的旗帜效果图
  4. 多线程中join()的用法
  5. angular_ui-router ——依赖注入
  6. python打怪之路【第二篇】:ImportError: No module named setuptools
  7. ActionBarSherlock ViewPagerIndicator
  8. Enterprise Library 5.0 开发向导- 简介(1)
  9. C#静态变量和非静态变量的区别
  10. 错误信息 c语言实现_全国计算机等级考试二级C语言