走格子(简单dfs)
发布日期:2021-09-19 10:55:52
浏览次数:2
分类:技术文章
本文共 854 字,大约阅读时间需要 2 分钟。
题目描述
在平面上有n*n大小的正方形,定义正方形左下角坐标是(1,1),右下角坐标是(n,1)现在A君在左下角,他的初始方向是向右,他要在正方形内走m步当A君碰到边界或者已经走过的格子时,他便会逆时针转90°继续走,直到走完m步。现在给你两个整数n和m,请算出走完m步后A君的坐标。输入描述:输入一行两个整数n和m。输出描述:输出一行两个数表示A君的坐标。示例1输入复制3 3输出复制3 2备注:n<=1000,m<n*n思路:
直接模拟题目过程,用dfs搜索。
代码:
#includeusing namespace std;const int maxn=1100;int Map[maxn][maxn];int dx[4]={1,0,-1,0};int dy[4]={0,1,0,-1};int n,m;int pan(int x,int y){ if(x>=1&&y>=1&&x<=n&&y<=n) { if(Map[x][y]==0)return 1; } return 0;}int f=0;void dfs(int x,int y,int d,int ans){ Map[x][y]=1; if(ans>=m) { printf("%d %d\n",x,y); f=1; return; } int xx=x+dx[d]; int yy=y+dy[d]; if(pan(xx,yy)) { dfs(xx,yy,d,ans+1); } else { dfs(x,y,(d+1)%4,ans); }}int main(){ scanf("%d%d",&n,&m); //Map[1][1]=1; dfs(1,1,0,0); return 0;}
转载地址:https://blog.csdn.net/a1046765624/article/details/80663532 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年03月17日 07时51分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java前台显示近20天的东西_第十次课:前台首页设计及显示商品信息
2019-04-21
java开发web网站的路由设计_理解Web路由(浅谈前后端路由与前后端渲染)
2019-04-21
excel如何把顺序倒过来_在excel中怎么使文字颠倒顺序反过来显示呢?
2019-04-21
脚本语言php是什么意思,PHP脚本语言
2019-04-21
matlab数学规划模型,数学规划模型
2019-04-21
视频提取音频php,如何提取视频中的音频,从视频文件中提取出音频输出成MP3格式...
2019-04-21
diy.php添加验证码,织梦dedecms自定义表单中加入验证码
2019-04-21
c语言 无错 但只运行一半,求哈夫曼编码时程序运行到一半就终止了,编译无错...
2019-04-21
android 限速工具,Android下载器之限速篇
2019-04-21
html刷新ajax实现原理,AJAX的原理—如何做到异步和局部刷新
2019-04-21
html中列表菜单加文字请选择,html中下拉菜单
2019-04-21
读书郎平板中android,读书郎学生平板电脑怎么用 使用方法详解【图文】
2019-04-21
html5 调用摄像头 支持IE,JS调用本地摄像头拍照(兼容各大浏览器及IE8+)
2019-04-21