可持久化文艺 FHQ 的一点问题
  • 板块学术版
  • 楼主ShunpowerSHUN理成张
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/5/21 10:20
  • 上次更新2023/10/28 00:59:45
查看原帖
可持久化文艺 FHQ 的一点问题
399150
ShunpowerSHUN理成张楼主2022/5/21 10:20

打普通可持久化 FHQ 的时候,merge 应该这么写:

int merge(int x,int y){
	if(!x||!y){
		return x|y;
	}
	if(a[x].num<a[y].num){
		int newn=newp(0);//*
		a[newn]=a[x];
		a[newn].r=merge(a[newn].r,y);
		change(newn);
		return newn;
	}
	else{
		int newn=newp(0);//*
		a[newn]=a[y];
		a[newn].l=merge(x,a[newn].l);
		change(newn);
		return newn;
	}
}

可以观察到我们新开了节点,但是为什么可持久化文艺 FHQ 就不需要新开节点去可持久?

2022/5/21 10:20
加载中...