WA了3个点(5,9,10)求助Floyd!
查看原帖
WA了3个点(5,9,10)求助Floyd!
224045
包包楼主2021/12/4 17:18
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int d[210][210],u,v,w,di[210][210],ans[210],k,f;
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<i;j++) d[i][j]=0x3f;
		for(int j=i+1;j<=n;j++) d[i][j]=0x3f;
	}
	for(int i=1;i<=m;i++)
	{
		cin>>u>>v>>w;
		d[u][v]=w;
		d[v][u]=w;
	}
	for(k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			if(i!=k)
			for(int j=1;j<=n;j++)
				if(i!=j&&j!=k) 
				{
					if(d[i][k]+d[k][j]<d[i][j])
					{
						d[i][j]=d[i][k]+d[k][j];
						di[i][j]=k;
					}
					else if(d[i][k]+d[k][j]==d[i][j]) di[i][j]=0;
				}
					
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(d[i][j]!=0x3f&&i!=j) if(di[i][j]!=0) ans[di[i][j]]=1;
	for(int i=1;i<=n;i++)
	{
		if(ans[i]==1)
		{
			cout<<i<<" ";
			f=1;
		}
	}
	if(f==0) cout<<"No important cities.";
	return 0;
} 
2021/12/4 17:18
加载中...