1 条题解
-
0
自动搬运
来自洛谷,原作者为

hhoppitree
成功的秘诀只有一个:加训。故古语有云:日拱一卒,功不唐捐;玉汝于成,溪达四海。搬运于
2025-08-24 22:27:51,当前版本为作者最后更新于2021-01-12 17:04:51,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意简述:
通过 交互 模拟走迷宫从而获得一个满足某些性质的迷宫的地图。
也就是探索迷宫啦。
有点像 level13题目解法:
不颓废了,开始讲正解。
这个 走 确定 迷宫应该大家都会吧。
不会有关系,因为您听不懂我在说什么。
然后就模拟 走迷宫就行了。
每步往四个方向都探索一下,直到碰壁返回。
然后就是注意不要走回头路。
具体见代码,不然会因步数过多 。
正确代码:
#include<bits/stdc++.h> using namespace std; extern "C" bool move_to(char position); int dta[505][505]; const int dx[]={-1,0,1,0},dy[]={0,-1,0,1}; const char ch[]={'W','A','S','D'}; void dfs(int x,int y){ dta[x][y]=1; for(register int i=0;i<4;++i){ int xx=x+dx[i],yy=y+dy[i]; if(~dta[xx][yy]){ continue; } bool tmp=move_to(ch[i]); if(!tmp){ dta[xx][yy]=0; continue; } dfs(xx,yy); if(i&1)move_to(ch[4-i]); else move_to(ch[2-i]); } return; } extern "C" string find_out_map(int x,int y,int n){ memset(dta,-1,sizeof(dta)); dfs(x,y); std::string ans=""; for(register int i=1;i<=n;++i){ for(register int j=1;j<=n;++j){ if(dta[i][j]==1)ans+='0'; else ans+='1'; } } return ans; }如果您没有看懂这篇题解,可以在评论区问我,我将会回答您的问题并且修改这篇题解,使它变得更加通俗易懂,服务更多的 。
如果您看懂了这篇题解,可以点个赞,使这篇题解的排名上升,服务更多的 。
- 1
信息
- ID
- 5575
- 时间
- 2000ms
- 内存
- 500MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者