//给一个无向图,问删除一条边,使得从1到n的最短路最长
//问这个最长路
//这个删除的边必定在最短路上,假设不在。那么走这条最短路肯定比其它短
//枚举删除这条最短路的边,找其最长的即为答案
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 1110 ;
const int inf = 0x3f3f3f3f;
struct Edge
{
int u , v , w ;
int next ;
}edge[maxn*maxn] ;
int head[maxn] ;
int nedge ;
int F[maxn] ;
int vis[maxn] ;
int dis[maxn] ;
int a[maxn] ;
int n , m;
void addedge(int u , int v , int w)
{
edge[nedge].u = u ;
edge[nedge].v = v ;
edge[nedge].w = w ;
edge[nedge].next = head[u] ;
head[u] = nedge++ ;
} void dijkstra(int num)
{
memset(vis , 0 , sizeof(vis)) ;
for(int j = 2;j <= n;j++)
dis[j] = inf ;
dis[1] = 0 ;
while(1)
{
int mi = inf; int pos ;
for(int j = 1 ;j <= n;j++)
if(!vis[j] && dis[j] < mi)
mi = dis[pos = j] ;
if(mi == inf)break;
vis[pos] = 1 ;
for(int i = head[pos] ;i != -1 ;i = edge[i].next)
{
if(i == num || i == (num^1))
continue ;
int v = edge[i].v;
if(dis[v] > dis[pos] + edge[i].w)
{
dis[v] = dis[pos] + edge[i].w ;
F[v] = i ;
}
}
}
}
int main()
{
//freopen("in.txt" ,"r" , stdin) ;
while(~scanf("%d%d" , &n , &m))
{
memset(head , -1 , sizeof(head)) ;
nedge = 0 ;
memset(F , 0 , sizeof(F)) ;
while(m--)
{
int u , v , w ;
scanf("%d%d%d" ,&u , &v ,&w) ;
addedge(u , v , w) ;
addedge(v , u , w) ;
}
dijkstra(nedge) ;
int u = n ;
int ans = 0 ;
int len = 0 ;
while(1)
{
if(u == 1)break ;
a[++len] = F[u] ;
u = edge[F[u]].u ;
}
for(int i = 1;i <= len;i++)
{
dijkstra(a[i]) ;
ans = max(ans , dis[n]) ;
}
cout<<ans<<endl;
}
return 0 ;
}

最新文章

  1. python smtplib发送邮件遇到的认证问题
  2. C#----使用WindowsMediaPlayer 同时播放多个声音
  3. win10初体验,我的错误代码哪里去了
  4. java版复利计算器升级
  5. sysfs接口整理
  6. java jvm学习笔记九(策略文件)
  7. Java Applet读写client串口——终极篇
  8. QT里嵌入Python
  9. ajax.js
  10. CArray
  11. PAT (Advanced Level) 1093. Count PAT&#39;s (25)
  12. Node Sass could not find a binding for your current environment 解决办法
  13. Spring3.x企业开发应用实战读书笔记 —— 第三章IoC容器概述
  14. Java中如何创建线程
  15. 【XSY3309】Dreamweaver 高斯消元 拉格朗日插值
  16. vue prop 传递数据
  17. Fat jar用途
  18. Jenkins安装部署(一)
  19. maven的pom文件报错: must be &quot;pom&quot; but is &quot;jar&quot;
  20. kNN--近邻算法

热门文章

  1. 【题解】永无乡 [HNOI2012] [BZOJ2733] [P3224]
  2. ZOJ3714JavaBeans
  3. Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求
  4. Hadoop Hive概念学习系列之hive里的HiveQL——查询语言(十五)
  5. ORA-02068,ORA-03135错误解决方法
  6. html5——全屏滚动
  7. ubuntu下sudo命令不能使用问题
  8. c#中通过事件实现按下回车跳转控件
  9. PHP采用301跳转方式防CC拦截
  10. 谈一谈Dijkstra