什么原因会导致代码厌氧
  • 板块学术版
  • 楼主_Weslie_
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/18 21:49
  • 上次更新2024/7/19 07:45:16
查看原帖
什么原因会导致代码厌氧
511959
_Weslie_楼主2024/7/18 21:49

rt。比如我的最小生成树板子代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct line {
	int u,v,w;
} e[200001];
int fa[5001],n,p,cnt,m,xx,yy;
long long sum=0,tot;
int findd(int t) {
	if(fa[t]==t)return t;
	else return fa[t]=findd(fa[t]);
}
int vnion(int x,int y) {
	xx=findd(x);
	yy=findd(y);
	fa[xx]=yy;
}
int cmp(line a,line b) {
	if (a.w<b.w) return 1;
	else return 0;
}
int main() {
	cin>>n>>m;
	for(int i=1; i<=n; i++)fa[i]=i;

	for(int j=1; j<=m; j++) {
		cin>>e[j].u>>e[j].v>>e[j].w;
	}

	sort(e+1,e+m+1,cmp);
	for(int i=1; i<=m; i++) {
		if(findd(e[i].u)!=findd(e[i].v)) {
			vnion(e[i].u,e[i].v);
			sum+=e[i].w;
			tot++;
			//cout<<e[i].u<<' '<<e[i].v<<endl;
		}
		if(tot==n-1)break;
	}
	for(int i=2;i<=n;i++){
		if(findd(i)!=findd(i-1)){
			cout<<"orz";
			return 0;
		}
	}
	cout<<sum;
	return 0;
}

(kruskal)

这份代码就是厌氧的,它开 O2 全 RE,但是不开就过了。

2024/7/18 21:49
加载中...