30分,考场样例全过

P11228 [CSP-J 2024] 地图探险

mengmeng123456 @ 2024-10-26 22:02:03

#include<bits/stdc++.h>
using namespace std;
int t;
int mk[1005][1005];
int main(){
//  ios::sync_with_stdio(0);
    cin>>t;
    while(t--){
        int x,y,d;
        int n,m,k;
        cin>>n>>m>>k;
        cin>>x>>y>>d;       
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                mk[i][j]=0;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                char c;
                cin>>c;
                if(c=='x'){
                    mk[i][j]=1;
                }
            }
        }
        int ans=0;
        for(int i=1;i<=k;i++){
            if(mk[x][y]!=2){
                ans++;
            }
            mk[x][y]=2;
            if(d==0){
                y++;
            }
            if(d==1){
                x++;
            }
            if(d==2){
                y--;
            }
            if(d==3){
                x--;
            }
            if(x<0||x>n||y<0||y>m||mk[x][y]==1){
                if(d==0){
                    y--;
                }
                if(d==1){
                    x--;
                }
                if(d==2){
                    y++;
                }
                if(d==3){
                    x++;
                }       
                d++;
                d%=4;       
            }
        }
            if(mk[x][y]!=2){
                ans++;
            }
            mk[x][y]=2;
            cout<<ans<<"\n";        
    }
    return 0;
}

by linrun0504 @ 2024-10-26 22:03:49

@mengmeng123456

不是到你是不是重复计算了一个点?

求回关


by mengmeng123456 @ 2024-10-26 22:05:07

@linrun0504 标记了,应该不是


by linrun0504 @ 2024-10-26 22:13:41

@mengmeng123456 你这个样例输出的是8

1
1 5 10
1 1 2
....x

by linrun0504 @ 2024-10-26 22:17:05

@mengmeng123456

我想发题解!!!

你看看


by mengmeng123456 @ 2024-10-26 22:17:31

@linrun0504 emmmmmmm


by mengmeng123456 @ 2024-10-26 22:32:47

@linrun0504 我唐完了


by mengmeng123456 @ 2024-10-26 22:33:13

@linrun0504 判断的时候写成x<0和y<0了


|