题目链接:hdu1595
Dijkstra:515MS
/*
题意:
求删掉任意一条边的最长最短路
思路:
首先求出最短路,同时记录下路径,接着枚举最短路上
每一条边(将此边切段),在求最短路,求这些最短路中的最长路
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
#include <queue>
using namespace std;
const int inf = 0x3f3f3f3f;
const int MAX = 1005;
const int MAXE = 5*1e5;
int mp[MAX][MAX];
int dis[MAX];
bool use[MAX];
int pre[MAX];
int ans, n;
void Dijkstra(int s,int e,bool flag)
{
typedef pair<int, int > pii;
priority_queue< pii, vector<pii>, greater<pii> > q;
fill(dis, dis+n+1, inf);
dis[s] = 0