关于P3366全WA
  • 板块题目总版
  • 楼主wlxs2006
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/7/12 21:14
  • 上次更新2023/11/6 23:13:35
查看原帖
关于P3366全WA
242405
wlxs2006楼主2020/7/12 21:14
#include<iostream>
#include<cstring>
using namespace std;
const int INF=1e9;
bool vst[5003];
int d[5003],g[5003][5003],n,m,ans=0;
void read(){
	int x,y,w;
	cin>>n>>m;
	for(int i=1;i<=n;++i)
		for(int j=1;j<=n;++j) g[i][j]=INF;
	for(int i=1;i<=m;++i){
		cin>>x>>y>>w;
		g[x][y]=g[y][x]=w;
	}
}
void prim(int v0){
	int minn,k;
	memset(vst,false,sizeof(vst));
	for(int i=1;i<=n;++i) d[i]=INF;
	d[v0]=0;
	ans=0;
	for(int i=1;i<=n;++i){
		minn=INF;
		for(int j=1;j<=n;++j)
			if(vst[j]==0&&minn>d[j]){
				minn=d[j];
				k=j;
			}
		vst[k]=true;
		ans+=d[k];
		for(int j=1;j<=n;++j)
			if(vst[j]==0&&d[j]>g[k][j]) d[j]=g[k][j];
	}
}
int main(){
	read();
	prim(1);
	
	cout<<ans<<endl;
return 0;
}

大佬指点,全WA

2020/7/12 21:14
加载中...