我感觉我这么搜是最舒服的
  • 板块P1189 SEARCH
  • 楼主mmmkkk111
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/12/30 16:34
  • 上次更新2024/12/30 17:12:10
查看原帖
我感觉我这么搜是最舒服的
1463377
mmmkkk111楼主2024/12/30 16:34
#include<bits/stdc++.h>
using namespace std;
int n,r,c,x,y;string s[1010];char a[55][55];bool mark[55][55]={0},vis[1010][55][55]={0};
void dfs(int deep,int x,int y){
if(vis[deep][x][y])return;
if(x>r||y>c||x<1||y<1||mark[x][y]){vis[deep][x][y]=1;return;}
if(deep>n){a[x][y]='*';vis[deep][x][y]=1;return;}
if(s[deep][0]=='N'){dfs(deep+1,x-1,y);dfs(deep,x-1,y);}
if(s[deep][0]=='S'){dfs(deep+1,x+1,y);dfs(deep,x+1,y);}
if(s[deep][0]=='W'){dfs(deep+1,x,y-1);dfs(deep,x,y-1);}
if(s[deep][0]=='E'){dfs(deep+1,x,y+1);dfs(deep,x,y+1);}
vis[deep][x][y]=1;}
int main(){
cin>>r>>c;
for(int i=1;i<=r;i++){
string s1;cin>>s1;
for(int j=0;j<=c-1;j++){
a[i][j+1]=s1[j];
if(a[i][j+1]=='X')mark[i][j+1]=1;
if(a[i][j+1]=='*')x=i,y=j+1,a[i][j+1]='.';}}
cin>>n;for(int i=1;i<=n;i++)cin>>s[i];dfs(1,x,y);
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
cout<<a[i][j];}cout<<'\n';}
return 0;}

2024/12/30 16:34
加载中...