救命,时间没超,但答案总出问题,我本人也看不出错在哪
查看原帖
救命,时间没超,但答案总出问题,我本人也看不出错在哪
141279
Albert·Einstein楼主2021/7/20 11:12
#include<bits/stdc++.h>
using namespace std;
long long adjcency[505][505];
bool book[505];
inline void Floyd_Warshall(int);
int fsum(int);
int main()
{
	int n,k;
	cin >> n;
	for(register int i=1;i<=n;i++) 
		for(register int j=1;j<=n;j++) 		
			cin >> adjcency[i][j];
	for(register int i=1;i<=n;i++)
	{
		cin >> k;
		Floyd_Warshall(n);
		cout << fsum(n) << " ";
		book[k]=true;
	}
	return 0;
} 
int fsum(int n)
{
	int sum=0;
	for(register int i=1;i<=n&&(!book[i]);i++)
		for(register int j=1;j<=n&&(!book[j]);j++)
			sum+=adjcency[i][j];	
	return sum;	
}
inline void Floyd_Warshall(int n)
{
	for(register int t=1;t<=n&&(!book[t]);t++)
		for(register int i=1;i<=n&&(!book[i]);i++)
			for(register int j=1;j<=n&&(!book[j]);j++)
				adjcency[i][j]=min(adjcency[i][j],adjcency[i][t]+adjcency[t][j]);
}

有那位神犇愿意拯救我这个小蒟蒻(感激涕零)

2021/7/20 11:12
加载中...