//单源最短路Floyd实现。最后答案应该处从起点到其他结点最短路中的最大值。 #include<iostream> #include<queue> using namespace std; const int INF = 50000000; int G[105][105]; bool flag[105]; int dis[105]; int n; int Floyd() { for(int k = 0;k < n;++k) for(int i = 0;i < n;++i) for(int j = 0;j < n;++j) G[i][j] = min(G[i][j],G[i][k] + G[k][j]); int res = INF*(-1); for(int i = 1;i < n;++i) if(res < G[0][i]) res = G[0][i]; return res; } int main() { // freopen("in.txt","r",stdin); char d[100]; scanf("%d",&n); memset(G,0,sizeof(G)); for(int i = 1;i < n;++i) { for(int j = 0;j < i;j++) { scanf("%s",d); if(d[0] != 'x') { G[i][j] = atoi(d); G[j][i] = atoi(d);//利用atoi函数将char*转化为int } else { G[i][j] = INF; G[j][i] = INF; } } } printf("%d/n",Floyd()); return 0; }