求助,关于带权并查集
  • 板块学术版
  • 楼主qcode_aya
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/12 09:28
  • 上次更新2023/11/12 11:05:22
查看原帖
求助,关于带权并查集
1021745
qcode_aya楼主2023/11/12 09:28

在做ABC328 F题时,我在写带权并查集使用了两种几乎一样的合并写法,其中第一种过了,第二种挂了样例(成功合并了但是返回false),求助dalao们 是哪里的问题呢

第一种写法

bool Merge(int x, int y, LL w){//x向y连权值为w的边 
	int Rx = Find(x), Ry = Find(y);
	if(Rx != Ry){
		fa[Rx] = Ry, val[Rx] = val[y]+w-val[x];
		return true;
	}return val[x] == val[y]+w;
}

第二种写法

bool Merge(int x, int y, LL w){
	int Rx = Find(x), Ry = Find(y);
	if(Rx != Ry) fa[Rx] = Ry, val[Rx] = val[y]+w-val[x];
	return val[Rx]+val[x]-val[y] == w;
}
2023/11/12 09:28
加载中...