求回:
查看原帖
求回:
364876
信息学carryHarry楼主2020/11/29 21:39
#include<bits/stdc++.h>
using namespace std;
int n,m,t,dis[105][105];
struct node{
	int s,e,h,a,b;
}ff[1005];
void floyd(){
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(dis[i][k]+dis[k][j]<dis[i][j])
					dis[i][j]=dis[i][k]+dis[k][j];
	return ; 
}
int main()
{
	cin>>n>>m>>t;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)
		{
			dis[i][j]=1e9;
		}
	}
	for(int i=1;i<=n;i++){
		cin>>ff[i].e>>ff[i].h>>ff[i].s;
		dis[ff[i].e][ff[i].h]=ff[i].s;
	}
		
	for(int i=1;i<t;i++){
		cin>>ff[i].a>>ff[i].b;
		
	}
	floyd();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++)
		{
			if(dis[i][j]==1e9)
				cout<<-1<<endl;
			else
				cout<<dis[ff[i].a[ff[i].b<<endl;
		}
	}
	return 0;
}

2020/11/29 21:39
加载中...