一个提问
查看原帖
一个提问
539211
lzyqwq楼主2022/9/10 11:57

在 dlx 中,恢复链的操作对方向有要求吗?

比如这个:

for (int i = e[c].d; i != c; i = e[i].d) {
        ans[dep] = e[i].x;
        for (int j = e[i].r; j != i; j = e[j].r) {
            remove(e[j].y);
        }
        if (dance(dep + 1)) {
            return 1;
        }
        for (int j = e[i].l; j != i; j = e[j].l) {
            resume(e[j].y);
        }
    }

这是 AC 的

然而改成:

for (int i = e[c].d; i != c; i = e[i].d) {
        ans[dep] = e[i].x;
        for (int j = e[i].r; j != i; j = e[j].r) {
            remove(e[j].y);
        }
        if (dance(dep + 1)) {
            return 1;
        }
        for (int j = e[i].r; j != i; j = e[j].r) {
            resume(e[j].y);
        }
    }

样例爆栈

求解释

2022/9/10 11:57
加载中...