博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C - Catch That Cow
阅读量:5891 次
发布时间:2019-06-19

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

  这是我第一次遇到的BFS问题,因为要学习编程,F同学帮我找了一些搜索的题目,做到这个问题的时候感觉无法使用DFS来写,因为他可能是个无底洞。因为当时没有学习过BFS,所以网上搜索了下发现了也是一位第一次碰到BFS题目就是C - Catch That Cow的博主,学习了他的代码,他的代码解释很清楚。

  感谢博主,传送门http://blog.csdn.net/weiwanshu/article/details/45770537

  题目的意思是农民的牛丢了,农民不知道牛在哪里,只能一点一点的去寻找,已知的是农民和牛在一条直线上,农民需要找到他的牛。农民有两种行走方法,一种是走,一分钟可以前进1个单位也可以后退1个单位,第二种方法是跳跃,每次只能向前跳,跳的位置是当前位置的2倍。给出农民和牛的位置求出最快多久找到牛。

样例

Sample Input5 17Sample Output4

代码

#include
#include
struct A { int state; int step;}queue[100001];int n,k;int bfs(int start);int book[100001];int main(){ scanf("%d%d",&n,&k); memset(book,0,sizeof(book)); if(n>=k) printf("%d",n-k); else printf("%d",bfs(n));}int bfs(int start){ struct A temp; int head=0; int rear=0; queue[head].state=start; queue[rear++].step=0; book[start]=1; while(head
0&&temp.state+1<100001&&book[temp.state+1]==0){ queue[rear].state=temp.state+1; queue[rear++].step=temp.step+1; book[temp.state+1]=1; if(temp.state+1==k) return temp.step+1; } if(temp.state-1>0&&temp.state-1<100001&&book[temp.state-1]==0){ queue[rear].state=temp.state-1; queue[rear++].step=temp.step+1; book[temp.state-1]=1; if(temp.state-1==k) return temp.step+1; } if(temp.state*2>0&&temp.state*2<100001&&book[temp.state*2]==0){ queue[rear].state=temp.state*2; queue[rear++].step=temp.step+1; book[temp.state*2]=1; if(temp.state*2==k) return temp.step+1; } } return 0;}

 

转载于:https://www.cnblogs.com/lvcoding/p/6557453.html

你可能感兴趣的文章
步步为营 C# 技术漫谈 七、事务处理(Transaction)
查看>>
AutoMapper在MVC中的运用03-字典集合、枚举映射,自定义解析器
查看>>
lodash用法系列(1),数组集合操作
查看>>
【Tomcat】Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
查看>>
cxrichedit导入WORD
查看>>
ArcGIS模型构建器案例教程-批量修改工作空间所有要素类的空间参考
查看>>
用GibbsLDA做Topic Modeling
查看>>
linux驱动面试题目汇总
查看>>
csharp skype send message in winform
查看>>
jQuery plugin: Tablesorter 2.0
查看>>
csharp:datagridview enter Half Width and Full Width characters
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法
查看>>
[转]GetLastInputInfo计时用户离开电脑及软件在指定时间锁定等
查看>>
Windows 操作系统与 .NET Framework
查看>>
Box2dの自定义多边形
查看>>
HDU 1425 ( sort )
查看>>
Windows Phone 7 框架和页面
查看>>
Directx11教程(31) 纹理映射(1)
查看>>
C++高精度实现计算程序运行时间
查看>>