题解 人类朴素写法
2026-10-07 21:46:08
发布于:广东
3阅读
0回复
0点赞
人类写法
#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,1,0,-1};
char a[1001][1001];
int dy[4]={1,0,-1,0};
bool vis[1001][1001];
int t,xx,yy,n,m,k,d,ans,l;
void dfs(int x,int y){
//cout<<x<<' '<<y<<'\n';
if(l==k)return;
vis[x][y]=1;
l++;
int fx=x+dx[d],fy=y+dy[d];
if(fx<=n&&fy<=m&&fx>=1&&fy>=1&&a[fx][fy]=='.'){
if(!vis[fx][fy])
ans++;
dfs(fx,fy);
return;
}
d=(d+1)%4;
dfs(x,y);
return;
}
int main(){
cin>>t;
while(t--){
l=0;
ans=1;
memset(vis,0,sizeof(vis));
cin>>n>>m>>k>>xx>>yy>>d;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
dfs(xx,yy);
cout<<ans<<endl;
}
}
这里空空如也




有帮助,赞一个