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 哪里越界了 搞半天找不到哪错了