如果你写的是这样:
void dfs(int x) {
for (int i = head[x]; i; i = nxt[i]) {
int y = to[i], z = w[i];
if (vis[abs(z)]) continue;
vis[abs(z)] = true;
head[x] = nxt[i];
dfs(y);
}
}
考虑改成:
void dfs(int x) {
for (int &i = head[x]; i; i = nxt[i]) {
int y = to[i], z = w[i];
if (vis[abs(z)]) continue;
vis[abs(z)] = true;
dfs(y);
}
}
(虽然说不管怎么样都能过洛谷就是了