这组数据能卡一些prim,比如我自己的 :)
  • 板块P2820 局域网
  • 楼主勒勒
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/10/26 16:19
  • 上次更新2023/11/4 02:13:09
查看原帖
这组数据能卡一些prim,比如我自己的 :)
285466
勒勒楼主2021/10/26 16:19
  • 6 6
  • 1 2 5
  • 1 3 4
  • 2 3 8
  • 4 5 7
  • 4 6 2
  • 5 6 1
#include<bits/stdc++.h>
using namespace std;
const int N = 1010,inf = 0x3f3f3f3f;
int n,m;
int first[N],len,dist[N],st[N];
int sum;
int u,v,w;
int g[N][N];
int prim(){
	memset(dist,inf,sizeof dist);
	int res=0;
	for(int i=0;i<n;i++){
		int t = -1;
		for(int j=1;j<=n;j++){
			if(!st[j] && (t == -1 || dist[j] < dist[t])){
				t = j;
			}
		}
		if(i && dist[t] == inf) return inf;
		if(i) res+=dist[t];
		st[t]=1;
		for(int j=1;j<=n;j++){
			dist[j] = min(dist[j] , g[t][j]);
		}
	}
	return res;
}
int main(){
	cin>>n>>m;
	memset(g,inf,sizeof g);
	for(int i=1;i<=n;i++){
		g[i][i]=0;
	}
	for(int i=1;i<=m;i++){
		cin>>u>>v>>w;
		sum+=w;
		g[u][v] = g[v][u] = min(g[u][v],w);
	}
	//cout<<sum<<endl; 
	int ans = sum - prim();
	cout<<ans<<endl;
	return 0;
} 
2021/10/26 16:19
加载中...