社区讨论
这两种写法有啥差别吗?
学术版参与者 2已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @miil08b0
- 此快照首次捕获于
- 2025/11/28 16:09 3 个月前
- 此快照最后确认于
- 2025/11/29 15:00 3 个月前
我在写【模板】线段树分裂 时写了 01trie 分裂/合并一直卡在 58pts,求助 AI 后,它将我的合并函数从
CPPvoid 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;
}
改成了:
CPPvoid 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 条回复,欢迎继续交流。
正在加载回复...