1595 hdu find the longest of the shortest
题目地址:
题解:题目意思为从起点到终点的最短路中有一条路不能通过了,求到从起点到终点的最短距离。
可以先找出从起点到终点的最短距离,并将路径保存下来,然后枚举最短路径中的所有路径,求
出从起点到终点的最短路径中最长的一条。
#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相关推荐
- find the longest of the shortest HDU - 1595
题意: 有一城市,这个城市有n个地点和m条连接他们的路,点的编号是从1到n,小X住在1,他想去n. 但是最近正在维修公路,也就是说这m条路有且只有一条是坏的,但是小X不知道是哪一条,一条很关键的路坏了 ...
- find the longest of the shortest
题目描述: Marica is very angry with Mirko because he found a new girlfriend and she seeks revenge.Since ...
- (dijkstra记录路径)find the longest of the shortest
Marica对Mirko很生气,因为他找到了一个新的女朋友,她想报仇.由于她不住在同一个城市,她开始为长途旅行做准备.我们知道每条路从一个城市到另一个城市需要多少分钟. 米尔科在车里无意中听到其中一条 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- kk_想要学习的知识
2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...
- 最短路:求最长最短路,求最短路的路径
枚举删边跑Dijskra HDU - 1595 find the longest of the shortest #include <set> #include <map> # ...
最新文章
- 要学习的别人的博客网址---收藏
- python培训班 费用-参加线上python培训班要多少钱?
- QML基础类型之vector3d
- ADF:在任务流终结器中支持bean作用域
- PyCharm社区版支持深度学习_深度学习,大家都看哪些社区论坛?
- 三角形判断(信息学奥赛一本通-T1054)
- python列表中存类对象_Python DataFrame或用于存储对象的列表
- mysql show slave_MySQL show slave status 参考
- 用Python写一个滑动验证码
- 利用masm32输出PE文件头的基本属性
- Unity案例 移动汽车
- 虚拟机opnsense作为dhcp服务器,在OPNsense中,通过主机名或域名访问内部设备
- 4071 国际象棋(枚举)
- 对话Oneledger联合创始人Edwin Zhang
- aspcms cookies欺骗和后台无验证注入
- 微信小程序毕业设计 基于javaweb后台网上书店图书商城小程序系统毕业设计
- 大数据运维学习成长路线
- PINCTRL子系统
- JavaScript定时器倒计时60S的使用
- mysql使索引失效语句_mysql语句中索引可能失效的情况
热门文章
- 剑与远征赏金试炼活动将在13天后结束,工会玩法大家有尝试过吗?
- 浏览器登陆时纪录自动登陆时限
- 3ds Max制作一面飘扬的旗帜效果图
- 多线程中join()的用法
- angular_ui-router ——依赖注入
- python打怪之路【第二篇】:ImportError: No module named setuptools
- ActionBarSherlock ViewPagerIndicator
- Enterprise Library 5.0 开发向导- 简介(1)
- C#静态变量和非静态变量的区别
- 错误信息 c语言实现_全国计算机等级考试二级C语言