求助求助求助,肝了三天的恶心题
查看原帖
求助求助求助,肝了三天的恶心题
316827
Temperature_automata楼主2020/9/22 20:07

floyed莫名爆炸请大佬看看:

#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;

const int N=105;

int a[N],g[N][N],n,u,v;

int main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	memset(g,100005,sizeof(g));
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		g[i][i]=0;
		cin>>a[i]>>u>>v;
		if(u>0)g[i][u]=g[u][i]=1;
		if(v>0)g[i][v]=g[v][i]=1;
	}
	for(int k=1;k<=n;k++)
		for(int i=1;i<=n;i++)
			if(i!=k)
				for(int j=1;j<=n;j++)
					if(k!=j&&i!=j)g[i][j]=min(g[i][j],g[i][k]+g[k][j]);
	int ans=1000005;
	for(int i=1;i<=n;i++)
	{
		int k=0;
		for(int j=1;j<=n;j++)
			k+=a[j]*g[i][j];
		ans=min(k,ans);
	}
	cout<<ans;
	return 0;
}

感觉和标程没多大区别啊
大雾大雾

2020/9/22 20:07
加载中...