[codevs1026] 逃跑的拉尔夫
来源:互联网 发布:水雷的点云数据集 编辑:程序博客网 时间:2024/05/01 11:48
题目链接
题解:闷声大暴力啊啊啊啊
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=55;int r,c,sx,sy,n;char s[maxn][maxn],ans[maxn][maxn];int map[maxn][maxn],vis[maxn][maxn][maxn*200],d[maxn*200];;int dx[]={0,-1,1,0,0};int dy[]={0,0,0,-1,1};void dfs(int x,int y,int t){ if(vis[x][y][t]) return ;//判重 vis[x][y][t]=1; if(!map[x][y]||x>r||y>c||x<1||y<1) return; if(t>n){ ans[x][y]='*';//找到一个可行点 return; } while(map[x][y])//一个指令可以走任意格,所以要用while { if(x>r||y>c||x<1||y<1) return; if(d[t]==1) dfs(--x,y,t+1); if(d[t]==2) dfs(++x,y,t+1); if(d[t]==3) dfs(x,--y,t+1); if(d[t]==4) dfs(x,++y,t+1); }}int main(){ cin>>r>>c; for(int i=1;i<=r;i++) {char ch; for(int j=1;j<=c;j++) { cin>>ch; if(ch=='.'){map[i][j]=1;ans[i][j]='.';} if(ch=='X'){map[i][j]=0;ans[i][j]='X';} if(ch=='*'){ map[i][j]=1;ans[i][j]='.'; sx=i;sy=j; } } } cin>>n; for(int i=1;i<=n;i++){ string dire; cin>>dire; if(dire[0]=='N') d[i]=1; if(dire[0]=='S') d[i]=2; if(dire[0]=='W') d[i]=3; if(dire[0]=='E') d[i]=4; } dfs(sx,sy,1); for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) cout<<ans[i][j]; cout<<endl; }}
0 0
- [codevs1026] 逃跑的拉尔夫
- codevs1026 逃跑的拉尔夫(搜索)
- 【codevs1026】逃跑的拉尔夫,广搜的胜利
- codevs1026
- 1026 逃跑的拉尔夫
- BFS 逃跑的拉尔夫
- 1026 逃跑的拉尔夫
- CodevsP1026 逃跑的拉尔夫
- wikioi 逃跑的拉尔夫
- 逃跑的拉尔夫
- Wikioi P1026 逃跑的拉尔夫
- 【wikioi】1026 逃跑的拉尔夫
- wikioi 1026 逃跑的拉尔夫
- 【wikioi】1026逃跑的拉尔夫
- wikioi逃跑的拉尔夫c++
- codevs--1026 逃跑的拉尔夫
- CodeVs 1026 逃跑的拉尔夫
- 【codevs 1026】逃跑的拉尔夫
- 边沿检测
- 软件测试(第2版)_Paul学习05_01——Ch5边界值测试_01
- Unity常用数学计算公式
- Android——获取系统图片/拍照/获取图片路径并显示的Demo
- pyenv 手册
- [codevs1026] 逃跑的拉尔夫
- npm初识 Getting Started
- CXF 拦截器,Feature, CXF 获取HTTP对象,JAX-WS的Handler
- InputManagerService按键接收过程
- Spring jpa异常
- linux系统更新yum源
- NAND
- hadoop 启动指令
- 详解nginx的基本配置及nginx.conf文件配置示例