http://poj.org/problem?id=2253
把点的坐标转化为点的序号
求每条路径中最大边权值的最小值,dijkstra算法中原本的dist[i]维护的是起始点到i号点的最短路径总长度;现在dist[i]维护起始点到i点到最大边权值,相应地,松弛操作改写为:d[i]=max(d[j],g[i][j]);
堆优化dijkstra解决最大边权最小值问题:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
const int maxn = 1005;
int T, N;
struct Point
{
int x, y;
}point[maxn];
double g[maxn][maxn];
// d[i]:原点到i最大边权值
double d[maxn];
void INIT()
{
for (int i = 0; i <