这两份代码有何区别
查看原帖
这两份代码有何区别
1145602
dongzhenmao楼主2025/8/2 12:45

差别在 main 中:

AC

#include <bits/stdc++.h>
using namespace std;

#define inf 0x3f3f3f3f
typedef long long lnt;

struct my_stream {
    int x;
    operator int() {
        scanf("%d", &x);
        return x;
    }
} __rp_read;
#define input() __rp_read

const int N = 3e2 + 10;

int sg[N][N];
bool vis[N][N], is[N * N];

int dfs(int w, int h) {
    if (vis[w][h]) return sg[w][h];
    vis[w][h] = true;
    if (w == 2 && h == 2) return sg[w][h] = 0;

    for (int i = 2; i <= w - 2; ++i) is[dfs(i, h) ^ dfs(w - i, h)] = true;
    for (int i = 2; i <= h - 2; ++i) is[dfs(w, i) ^ dfs(w, h - i)] = true;

    while (is[sg[w][h]] == 1) sg[w][h]++;

    for (int i = 2; i <= w - 2; ++i) is[dfs(i, h) ^ dfs(w - i, h)] = false;
    for (int i = 2; i <= h - 2; ++i) is[dfs(w, i) ^ dfs(w, h - i)] = false;

    return sg[w][h];
}

int main() { //
    for (int i = 2; i <= 200; ++i) {
        for (int e = 2; e <= 200; ++e) {
            dfs(i, e);
        }
    }
    int w, h;
    while (scanf("%d%d", &w, &h) != EOF) {
        puts(sg[w][h] ? "WIN" : "LOSE");
    }

    return 0;
}

WA

#include <bits/stdc++.h>
using namespace std;

#define inf 0x3f3f3f3f
typedef long long lnt;

struct my_stream {
    int x;
    operator int() {
        scanf("%d", &x);
        return x;
    }
} __rp_read;
#define input() __rp_read

const int N = 3e2 + 10;

int sg[N][N];
bool vis[N][N], is[N * N];

int dfs(int w, int h) {
    if (vis[w][h]) return sg[w][h];
    vis[w][h] = true;
    if (w == 2 && h == 2) return sg[w][h] = 0;

    for (int i = 2; i <= w - 2; ++i) is[dfs(i, h) ^ dfs(w - i, h)] = true;
    for (int i = 2; i <= h - 2; ++i) is[dfs(w, i) ^ dfs(w, h - i)] = true;

    while (is[sg[w][h]] == 1) sg[w][h]++;

    for (int i = 2; i <= w - 2; ++i) is[dfs(i, h) ^ dfs(w - i, h)] = false;
    for (int i = 2; i <= h - 2; ++i) is[dfs(w, i) ^ dfs(w, h - i)] = false;

    return sg[w][h];
}

int main() { //
    int w, h;
    while (scanf("%d%d", &w, &h) != EOF) {
        puts(dfs(w, h) ? "WIN" : "LOSE");
    }

    return 0;
}
2025/8/2 12:45
加载中...