专栏文章

T547385 贪吃蛇 题解

题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqehfqi
此快照首次捕获于
2025/12/04 03:29
3 个月前
此快照最后确认于
2025/12/04 03:29
3 个月前
查看原文
c++:
CPP
#include <bits/stdc++.h>

using namespace std;

int vis[2010][2010], mp[2010][2010], sn[4000010];
int m, p, n, x = 1, y = 1, ti, idx;

int main() {
    scanf("%d %d %d", &m, &p, &n);
    for (int i = 1; i <= m; i++) {
        for (int j = 1; j <= m; j++)
            mp[i][j] = -1;
    }
    while (p--) {
        int w, k, c;
        scanf("%d %d %d", &w, &k, &c);
        mp[w][k] = c;
    }
    vis[x][y] = ++ti;
    sn[++idx] = 0;
    for (int i = 1; i <= n; i++) {
        char s[3];
        scanf("%s", s);
        if (s[0] == 'U') x--;
        else if (s[0] == 'D') x++;
        else if (s[0] == 'L') y--;
        else if (s[0] == 'R') y++;
        else {
            int w, k;
            scanf("%d %d", &w, &k);
            if (!vis[w][k]) printf("-1\n");
            else {
                if (idx - ti + vis[w][k] > 0) printf("%d\n", sn[idx - ti + vis[w][k]]);
                else printf("-1\n");
            }
        }
        if (s[0] != 'Q') vis[x][y] = ++ti;
        if (mp[x][y] != -1) {
            sn[++idx] = mp[x][y];
            mp[x][y] = -1;
        }
    }
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...