0pts玄关求条
查看原帖
0pts玄关求条
934048
ni_ju_ge楼主2024/7/22 09:42
#include<iostream>
#include<cmath>
using namespace std;
long long g[5001][5001],b[5001];
bool k[5001],d[5001][5001];
long long x,y,z,n,m;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y;
		cin>>g[x][y];
		g[y][x]=g[x][y];
		d[y][x]=d[x][y]=true;
	}
	for(int i=0;i<=5000;i++)
	{
		b[i]=1145141919;
	}
	b[1]=0;
	for(int i=1;i<n;i++)
	{
		x=0;
		for(int j=1;j<=n;j++)
		{
			if((k[j]==false && b[j]<b[x] && d[j][x]==true)||x==0)
			{
				x=j;
			}
		}
		k[x]=true;
		for(int j=1;j<=n;j++)
		{
			if(d[j][x]==true && k[j]==false && g[j][x]<b[j])
			{
				b[j]=g[j][x];
			}
		}
	}
	y=0;
	for(int i=1;i<=n;i++)
	{
		y+=b[i];
//		cout<<b[i]<<" ";
	}
	cout<<y;
}

数据点情况

2024/7/22 09:42
加载中...