floyd 模板

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
#define inf 9999999999
const int maxn=110;
int a[maxn][maxn]; 
int main(){
	int i,j,k,m,n;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(i==j)a[i][j]=0;
			else a[i][j]=inf;
		}
	}
	while(m--){
		int x,y,w;
		scanf("%d%d%d",&x,&y,&w);
		a[x][y]=w;
		a[y][x]=w;
	}
	for(k=1;k<=n;k++)
	  for(i=1;i<=n;i++)
	    for(j=1;j<=n;j++)
	      if(a[i][j]>a[i][k]+a[k][j])
	        a[i][j]=a[i][k]+a[k][j];
	 for(i=1;i<=n;i++){
	 	for(j=1;j<=n;j++){
	 		printf("%d ",a[i][j]);
		 }
		 printf("\n");
	 } 
	return 0;
}

posted @ 2016-08-26 21:36  Drinkwater_cnyali  阅读(134)  评论(0编辑  收藏  举报