关于O2
  • 板块学术版
  • 楼主QBW1117
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/2/23 08:24
  • 上次更新2024/2/23 11:08:05
查看原帖
关于O2
933814
QBW1117楼主2024/2/23 08:24

rt

昨天我们团队内部赛有一道最大生成树的板子。

link

#include<bits/stdc++.h>
#define f(i,a,b) for(int i = a ; i<=b ; i++)
using namespace std;
int n,m,x,y,z;
int fa[300005];
struct node{
	int u,v,w;
}e[300005]; 
bool cmp(node x,node y){return x.w>y.w;}
int find_fa(int x){
	if(fa[x] == x) return x;
	return fa[x] = find_fa(fa[x]);
}
void unionn(int x,int y){
	int fx = find_fa(x),fy = find_fa(y);
	fa[fx] = fa[fy];
}
int kruskal(){
	int cnt = 0,ans= 0;
	sort(e+1,e+m+1,cmp);
	f(i,1,m){
		int u = e[i].u,v = e[i].v,w = e[i].w;
		if(find_fa(u) == find_fa(v)) continue;
		unionn(u,v);
		ans+=w;
		cnt++;
		
	}
	if(cnt == n-1) return ans;
	else return 114514;
}
int main(){
	cin>>n>>m;
	f(i,1,n) fa[i] = i;
	f(i,1,m){
		cin>>e[i].u>>e[i].v>>e[i].w;
	}
	int ans = kruskal();
	if(ans == 114514) cout<<"orz";
	else cout<<ans;
	return 0;
}

这份代码已知有两个问题

没开longlong,数组开小

为什么我开o2,同样的代码,#4#5会mle,

不开o2,#4#5RE

求大佬指点

2024/2/23 08:24
加载中...