最后一个点WA球条
查看原帖
最后一个点WA球条
1632696
whitechock楼主2025/2/6 19:28

明明修了重边

#include<bits/stdc++.h>
using namespace std;

int n,m;
int A[10005][10005];

int main()
{
	cin>>n>>m;
	for(int i=0;i<=n;i++)
	{
		for(int j=0;j<=n;j++)
			A[i][j]=1145141919;
		A[i][i]=0;
	}	
	for(int i=0;i<m;i++)
	{
		int x,y,z;cin>>x>>y>>z;
		if(x!=y)
		{
			A[y][x]=A[y][y]>z?A[y][x]:z;
			A[x][y]=A[x][x]>z?A[x][y]:z;
		}
		else A[x][y]=0;
	}
	for (int k=1;k<=n;k++) 
		for (int i=1; i<=n;i++) 
			for (int j=1; j<=n;j++) 
				if (A[i][k]!=1145141919 && A[k][j]!=1145141919) 
					A[i][j]=A[i][j]<A[i][k]+A[k][j]?A[i][j]:A[i][k]+A[k][j];
	for (int i=1; i<=n;i++) {
		for (int j=1;j<=n;j++) {
			if (A[i][j]==1145141919)	continue;
			cout<<A[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2025/2/6 19:28
加载中...