灵异事件
查看原帖
灵异事件
367343
SDLTF_凌亭风楼主2023/8/22 20:57

SD 写了如下代码:

void dfs(int x) {
	if(ps[x]) upd(root[x], 1, F1.tot, ps[x]);
	for(int i = 0; i < G[x].size(); ++ i) dfs(G[x][i]), root[x] = merge(root[x], root[G[x][i]]);
}

这个写法是可以通过本题的。

然而循环如果被改成这样:

void dfs(int x) {
	if(ps[x]) upd(root[x], 1, F1.tot, ps[x]);
	for(int i = 0; i <= G[x].size() - 1; ++ i) dfs(G[x][i]), root[x] = merge(root[x], root[G[x][i]]);
}

则全部变为 RE。

这是为什么?

2023/8/22 20:57
加载中...