Tgdoem @ 2024-11-19 21:05:16
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
bool v[N][N];
bool w[N][N];
int way[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
bool OK(int x,int y,int n,int m){
if(x<1)return false;
if(x>n)return false;
if(y<1)return false;
if(y>m)return false;
return v[x][y];
}
int main(){
int t;
cin>>t;
int qwq=0;
while(t--){
memset(w,false,sizeof(w));
int n,m,k;
cin>>n>>m>>k;
int x,y,d;
cin>>x>>y>>d;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char a;
cin>>a;
if(a=='.')v[i][j]=true;
}
}
w[x][y]=true;
int s=1;
while(k--){
int nx=x+way[d][0],ny=y+way[d][1];
if(OK(nx,ny,n,m)){
x=nx;
y=ny;
if(!w[x][y])s++;
w[x][y]=true;
}else{
d=(d+1)%4;
}
}
cout<<s<<"\n";
}
return 0;
}
by schlutz @ 2024-11-21 18:35:20
直接暴力深搜就行(我考场上就这么做的100分)
广搜没试过