代码:
#include<bits/stdc++.h>
using namespace std;
#define LEN 1001
#define MAX INT_MAX
int node[LEN][LEN];
void floyd(int n){
/*
求一个图中任意一个点到另一个点的最短路径。
允许存在负权值,但不能存在负回路。
*/
for(int k=0;k<n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i!=j&&node[k][j]!=MAX&&node[i][k]!=MAX&&node[i][j]>node[i][k]+node[k][j])
node[i][j]=node[i][k]+node[k][j];
return ;
}