社区讨论

50pts求助

P11228[CSP-J 2024] 地图探险参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m2r349em
此快照首次捕获于
2024/10/27 12:23
去年
此快照最后确认于
2024/10/27 14:01
去年
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int main(){
    int T;
    scanf("%d", &T);
    for(int i = 0;i < T;i++){
        int n, m, k;
        scanf("%d %d %d", &n, &m, &k);
        int x, y, d, _x, _y;
        scanf("%d %d %d", &x, &y, &d);
        
        char explore[n + 1][m + 1];
        bool visit[n + 1][m + 1];
        memset(visit, false, sizeof(visit));
        int ans = 1;
        
        getchar();
        for(int i = 1;i <= n;i++){
            for(int j = 1;j <= m;j++)
                explore[i][j] = getchar();
            getchar();
        }
        for(int q = 0;q < k;q++){
            if(d == 0){
                _x = x;_y = y + 1;
            }
            else if(d == 1){
                _x = x + 1;_y = y;
            }
            else if(d == 2){
                _x = x;_y = y - 1;
            }
            else{
                _x = x - 1;_y = y;
            }
            if(1 <= _x && _x <= n && 1 <= _y && _y <= m && explore[_x][_y] == '.'){
                x = _x;
                y = _y;
                if(visit[x][y] == false){
                    ans++;
                    visit[x][y] = true;
                }
            }
            else
                d = (d + 1) % 4;
        }
        printf("%d\n", ans);
    }
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...