社区讨论

神奇现象求助

P3377【模板】可并堆 1参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lz5ibclk
此快照首次捕获于
2024/07/28 19:58
2 年前
此快照最后确认于
2024/07/28 21:05
2 年前
查看原帖
这是一个正常的左偏树合并
CPP
	int merge(int x,int y){
		if(!x||!y) return x|y;
		if(tr[x].v>tr[y].v) swap(x,y);
		tr[x].rs=merge(tr[x].rs,y);
		if(tr[tr[x].ls].dist<tr[tr[x].rs].dist) swap(tr[x].ls,tr[x].rs);
		tr[x].dist=tr[tr[x].rs].dist+1;
		return x; 
	}
然而我将 tr[x].dist=tr[tr[x].rs].dist+1; 误打成了 tr[x].dist=tr[tr[x].ls].dist+1; 仍能通过且运行速度几乎无影响。由于左偏树的 dist 只影响合并时选择的子树不会影响答案所以也不会 WA,自己尝试了构造 hack 数据也没有成功,求助有无能将这种写法卡掉的数据?

回复

0 条回复,欢迎继续交流。

正在加载回复...