90分,RE第10个点
  • 板块P1396 营救
  • 楼主WRTLEO2
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/5/15 11:31
  • 上次更新2023/11/7 02:26:26
查看原帖
90分,RE第10个点
326796
WRTLEO2楼主2020/5/15 11:31

RT,放代码

#include<bits/stdc++.h>
using namespace std;
int f[50002],n,m,s,t;
struct edge{
	int u,v,w;
};
struct edge e[10006];
bool cmp(edge x,edge y){
	return x.w<y.w;
}
int getf(int k){
	while(k!=f[k]) k=f[k]=getf(f[k]);
	return k;
}
void merge(int u,int v){
	int t1=getf(u);
	int t2=getf(v);
	if(t1!=t2){
		f[t2]=t1;
	}
}
int main(){
	scanf("%d%d%d%d",&n,&m,&s,&t);
	for(int i=1;i<=n;i++){
		f[i]=i;
	}
	for(int i=1;i<=m;i++){
		scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w);
	}
	sort(e+1,e+m+1,cmp);
	int count,sum;
	for(int i=1;i<=m;i++){
		merge(e[i].u,e[i].v);//对两个社区进行合并 
		if(getf(s)==getf(t)){
			cout<<e[i].w<<endl;
			return 0;
		}
	}
	return 0;
}

救救孩子吧

2020/5/15 11:31
加载中...