关于本题题解的正确性
  • 板块CF568C New Language
  • 楼主panyf
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/11/5 23:53
  • 上次更新2023/11/5 08:51:54
查看原帖
关于本题题解的正确性
221955
panyf楼主2020/11/5 23:53

rt,以第一篇题解为例:

dfs 的过程中对经过的所有结点 v 值都改为 1:

bool dfs(int x) {
	if (v[x>n?x-n:x+n]) return 0;
	v[x] = 1;
	for (ui i = 0; i < e[x].size(); i++) {
		int y = e[x][i];
		if (!v[y] && !dfs(y)) return 0;
	}
	return 1;
}

若下面第一行的 dfs 返回 0,为什么没有将 v 值重新改为 0?

if (dfs(i + a[x] * n)) s[i] = x + 'a' - 1;
else if (dfs(i + a[y] * n)) s[i] = y + 'a' - 1;
2020/11/5 23:53
加载中...