uva10048 ( floyd,最大值最小化)

心痛,紫书上的这个和ccf一样的,但我没做。。。先去哭一回。。。


紫书上是这样给出证明的:任意的从i到j的路,如果至少由两条边组成,那么在联通的两条边中直接取最大值;如果从i到j的路是不联通的,那么一定在

d[i][j]=min(d[i][j],max(d[i][k],d[k][j]));

中的三个数中至少有两个是INF 那么最终由最大值是否为INF 就可以得出是否是no path

#include 
#include 
#include 
#include 
#include 
#define maxn 1000
#define INF 100000000
using namespace std;
int  c,s,q;
int d[maxn][maxn];
void Init()
{
    for(int i=0;i


你可能感兴趣的:(最短路)