3221225477越界 求助

P11228 [CSP-J 2024] 地图探险

fyc201908 @ 2024-11-03 14:28:57

#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    vector<int> ans(t);
    for(int i=0;i<t;i++)
        ans[i]=0;
    for(int i=1;i<=t;i++){
        int n,m,k,x,y,d;
        cin>>n>>m>>k>>x>>y>>d;
        char ex[1000][1000];
        bool flag[1000][1000];
        memset(ex,'0',sizeof(ex));
        memset(flag,false,sizeof(flag));
        for(int j=0;j<n;j++){
            for(int k=0;k<m;k++){
                cin>>ex[j][k];
            }
        }
        int a=x-1,b=y-1;
        for(int j=0;j<k;j++){
            bool isrun=true;
            bool isturn_right=true;
            if(d==0 && b+1<m && ex[a][b+1]=='.' && isrun==true){
                b++;
                flag[a][b]=true;
                isrun=false;
                isturn_right=false;
            }
            else if(d==1 && a+1<m && ex[a+1][b]=='.' && isrun==true){
                a++;
                flag[a][b]=true;
                isrun=false;
                isturn_right=false;
            }
            else if(d==2 && b-1>=0 && ex[a][b-1]=='.' && isrun==true){
                b--;
                flag[a][b]=true;
                isrun=false;
                isturn_right=false;
            }
            else if(d==3 && a-1>=0 && ex[a-1][b]=='.' && isrun==true){
                a--;
                flag[a][b]=true;
                isrun=false;
                isturn_right=false;
            }
            if(isturn_right==true) d=(d+1)%4;
        }
        for(int j=0;j<n;j++){
            for(int k=0;k<m;k++){
                if(flag[j][k]==true) ans[i]++;
            }
        }
    }
    for(int i=0;i<t;i++){
        cout<<ans[i]<<"\n";
    }
    return 0;
}

样例过不去


by luozezhong @ 2024-11-03 14:47:29

内存访问越界


by Zxm2013 @ 2024-11-03 18:02:20

《你家T262行》


by fyc201908 @ 2024-11-06 09:59:42

@luozezhong 哪里越界了 搞半天找不到哪错了


|