社区讨论

这两种写法有啥差别吗?

学术版参与者 2已保存回复 7

讨论操作

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

当前回复
7 条
当前快照
1 份
快照标识符
@miil08b0
此快照首次捕获于
2025/11/28 16:09
3 个月前
此快照最后确认于
2025/11/29 15:00
3 个月前
查看原帖
我在写【模板】线段树分裂 时写了 01trie 分裂/合并一直卡在 58pts,求助 AI 后,它将我的合并函数从
CPP
void merge(int &x,int &y){
	if(!x)return;
	if(!y){
		swap(x,y);return;
	}
	merge(T[x].trie[0],T[y].trie[0]),merge(T[x].trie[1],T[y].trie[1]);
	T[y].cnt=T[T[y].trie[0]].cnt+T[T[y].trie[1]].cnt;
}
改成了:
CPP
void merge(int &x,int &y){
	if(!x)return;
	if(!y){
		swap(x,y);return;
	}
	merge(T[x].trie[0],T[y].trie[0]),merge(T[x].trie[1],T[y].trie[1]);
	T[y].cnt+=T[x].cnt;
}
就过了。但是我感觉这两个作用效果是一样的啊,有什么不同呢?

回复

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

正在加载回复...