向我210的初赛致敬
2025-04-29 18:55:53
发布于:四川
49阅读
0回复
0点赞
一个简单的搜索或模拟
#include<iostream>
#include<cstring>
using namespace std;
const int N=1e3+10;
char mp[N][N];
bool vis[N][N];
int diry[5]={1,0,-1,0};
int dirx[5]={0,1,0,-1};
int main(){
int t;
cin>>t;
while(t--){
memset(mp,0,sizeof(mp));
memset(vis,0,sizeof(vis));
int n,m,k,x,y,d;
cin>>n>>m>>k>>x>>y>>d;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
long long ans=0;
vis[x][y]=1;
ans++;
while(k--){
int dx=x+dirx[d];
int dy=y+diry[d];
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&mp[dx][dy]!='x'){
if(!vis[dx][dy]){
ans++;
vis[dx][dy]=1;
}
x=dx;
y=dy;
}else{
d=(d+1)%4;
}
}
cout<<ans<<endl;
}
return 0;
}
全部评论 1
《初赛》
2025-05-04 来自 广东
0
有帮助,赞一个