P1194全RE
  • 板块学术版
  • 楼主K1ondra
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/6 19:19
  • 上次更新2024/6/6 21:50:08
查看原帖
P1194全RE
586689
K1ondra楼主2024/6/6 19:19

样例能过,全RE

#include<bits/stdc++.h>
namespace Fast {
	inline int read() {
		int x=0,f=1;
		char ch=getchar();
		while(ch<'0'||ch>'9') {
			if(ch=='-')
				f=-1;
			ch=getchar();
		}
		while(ch>='0' && ch<='9')
			x=x*10+ch-'0',ch=getchar();
		return x*f;
	}
	void write(int x) {
		if(x<0)
			putchar('-'),x=-x;
		if(x>9)
			write(x/10);
		putchar(x%10+'0');
		return;
	}
}
using namespace std;

using namespace Fast;
const int N=2145;

struct Edge {
	int x,y,dis;
} edge[N*N];
int fa[N*N];

bool cmp(Edge x,Edge y) {
	return x.dis<y.dis;
}

int find(int x) {
	if(fa[x]!=x)return fa[x]=find(fa[x]);
	return fa[x];
}

int merge(int x,int y) {
	x=find(x);
	y=find(y);
	fa[x]=y;
	return fa[x];
}

int init(int n) {
	for(int i=1; i<=n; i++) {
		fa[i]=i;
	}
}

int main() {
	int n,m;
	int cnt=0,js=0;
	n=read(),m=read();
	init(m);

	for(int i=1; i<=m; i++) {
		for(int j=1; j<=m; j++) {
			edge[++cnt].dis=read();

			edge[cnt].x=i;
			edge[cnt].y=j;
		}
	}

	sort(edge+1,edge+cnt+1,cmp);

	int ans=n;

	for(int i=1; i<=cnt; i++) {
		if(find(edge[i].x)!=find(edge[i].y)) {
			merge(edge[i].x,edge[i].y);
			cnt++;
			ans+=edge[i].dis;
		}
	}

	write(ans);

	return 0;
}

捞

测评记录

报错信息

Runtime Error.
Received signal 11: Segmentation fault with invalid memory reference.

说我内存引用无效

2024/6/6 19:19
加载中...