Prim全wa求助
查看原帖
Prim全wa求助
151696
Konjacer楼主2020/12/30 20:06
#include<iostream>
using namespace std;
const int inf = 999999999;
int graph[5005][5005];
int dist[5005];
bool vis[5005];
void init(int n)
{
	for(int i=1;i<=n;++i)
	{
		for(int j=1;j<=n;++j)
		{
			if(i==j) graph[i][j]=0;
			else graph[i][j]=inf;
		}
	}
}
int prim(int n)
{
	int ans=0;
	int order;
	for(int i=1;i<=n;++i)
	{
		dist[i]=graph[1][i];
	}
	vis[1]=1;
	for(int i=1;i<n;++i)
	{
		int minn=inf;
		for(int j=1;j<=n;++j)
		{
			if(!vis[j]&&dist[j]<minn)
			{
				minn=dist[j];
				order=j;
			}
		}
		ans+=minn;
		vis[order]=1;
		for(int j=1;j<=n;++j)
		{
			if(!vis[j]&&dist[j]>graph[order][j])
			{
				dist[j]=graph[order][j];
			}
		}
	}
	return ans;	
}
int main()
{
	int n,m;
	int p1,p2,value;
	cin>>n>>m;
	init(n);
	for(int i=1;i<=m;++i)
	{
		cin>>p1>>p2>>value;
		graph[p1][p2]=value;
		graph[p2][p1]=value;
	}
	cout<<prim(n)<<endl;
	return 0;
}

全wa了,请大佬们帮忙看看,多谢。

2020/12/30 20:06
加载中...