博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1035 Robot Motion(dfs)
阅读量:6278 次
发布时间:2019-06-22

本文共 1014 字,大约阅读时间需要 3 分钟。

虽然做出来了,还是很失望的!!!

加油!!!还是慢慢来吧!!!

》》》》》》》》》》》》》》》》》》》》》》》》》》《《《《《《《《《《《《《《《《《《《《《《《《《《《

》》》》《《《《

很简单的一道题,一步步的走,走出矩阵则说明没有环,若走到已经走过的地方,说明有环,按格式输出结果即可!!!

#include<stdio.h>

#include<string.h>

int n,m,temp;
int ans[1010][1010];
char map[1010][1010];
void dfs(int sx,int sy)
{
while(sx>=0&&sx<n&&sy>=0&&sy<m&&map[sx][sy]!='o')
{
if(map[sx][sy]=='S')
{
// temp++;
map[sx][sy]='o';
ans[sx][sy]=++temp;
sx++;
}
else if(map[sx][sy]=='N')
{
//temp++;
map[sx][sy]='o';
ans[sx][sy]=++temp;
sx--;
}
else if(map[sx][sy]=='E')
{
//temp++;
map[sx][sy]='o';
ans[sx][sy]=++temp;
sy++;
}
else if(map[sx][sy]=='W')
{
//temp++;
map[sx][sy]='o';
ans[sx][sy]=++temp;
sy--;
}
}
if(map[sx][sy]=='o')
printf("%d step(s) before a loop of %d step(s)\n",ans[sx][sy]-1,temp-ans[sx][sy]+1);
else
printf("%d step(s) to exit\n",temp);
}
int main()
{
int k,i;
while(scanf("%d %d %d",&n,&m,&k),n+m+k)
{
memset(ans,0,sizeof(ans));
for(i=0;i<n;i++)
scanf("%s",map[i]);
temp=0;
dfs(0,k-1);
}
return 0;
}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1035

转载地址:http://peyva.baihongyu.com/

你可能感兴趣的文章
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>