C - Catch That Cow
这是我第一次遇到的BFS问题,因为要学习编程,F同学帮我找了一些搜索的题目,做到这个问题的时候感觉无法使用DFS来写,因为他可能是个无底洞。因为当时没有学习过BFS,所以网上搜索了下发现了也是一位第一次碰到BFS题目就是C - Catch That Cow的博主,学习了他的代码,他的代码解释很清楚。
感谢博主,传送门http://blog.csdn.net/weiwanshu/article/details/45770537
题目的意思是农民的牛丢了,农民不知道牛在哪里,只能一点一点的去寻找,已知的是农民和牛在一条直线上,农民需要找到他的牛。农民有两种行走方法,一种是走,一分钟可以前进1个单位也可以后退1个单位,第二种方法是跳跃,每次只能向前跳,跳的位置是当前位置的2倍。给出农民和牛的位置求出最快多久找到牛。
样例
Sample Input
5 17
Sample Output
4
代码
#include<stdio.h> #include<string.h> 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<rear){temp=queue[head++];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-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 - Catch That Cow相关推荐
- C - Catch That Cow POJ - 3278
C - Catch That Cow POJ - 3278 首先是大暴搜+最优化剪枝(当当前搜索情况不如已有答案优时,返回) #include<cstdio> #include<al ...
- POJ 3278 Catch That Cow
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 35043 Accepted: 10800 ...
- POJ 3278 Catch That Cow
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 30924 Accepted: 9536 D ...
- POJ 3278 Catch That Cow BFS
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 32071 Accepted: 9866 D ...
- POJ 3278 Catch That Cow(BFS)
题目网址:http://poj.org/problem?id=3278 题目: Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Tot ...
- 牛客假日团队赛5 L Catch That Cow HDU 2717 (BFS)
链接:https://ac.nowcoder.com/acm/contest/984/L 来源:牛客网 Catch That Cow 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 3 ...
- POJ3278——Catch That Cow
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 114140 Accepted: 35715 ...
- 动态规划训练13 [Catch That Cow poj3278]
Catch That Cow POJ - 3278 这道题我看大家用的方法都是bfs搜索,为什么在我看来这就是一个动态规划的题目啊啊啊啊啊啊啊 dp[x]表示从N出发到x所需要的最小时间 那么得到如下 ...
- poj 3278 catch that cow BFS(基础水)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 61826 Accepted: 19329 ...
- Catch That Cow【广搜】
Catch That Cow POJ - 3278 Farmer John has been informed of the location of a fugitive cow and wants ...
最新文章
- java怎么将字符串反序输出_对String字符串进行反序输出
- C++程序的多文件组成
- 设计模式学习----装饰器模式
- action怎么获得 ajax date参数_ajax()gt;load()事件的新用法!!!
- java.close用法_void close()
- RedisTemplate常用集合使用说明-opsForZSet(六)
- java 银行卡号格式化_JS银行卡号格式化 - JavaScript常用效果 - Front-End - NalanXue's Blog...
- 十个优衣库仓库理货员,只有一个能留下,机器已经上岗了
- atomQQ 笔记 之 列表元素的异步加载
- spring的历史与设计哲学
- zynq开发系列4:EMIO连接按键控制MIO连接的灯
- jsp主板 jtp_HPlaserjtp1008不开机故障的检测与维修流程
- DS18B20温度传感器c语言编程,单片机中使用DS18B20温度传感器C语言程序(参考7)(DS18B20 测...
- 阿里云mysql空间不足_阿里云数据库MySQL系统文件导致实例空间满的解决办法
- linux tar zcxf,tar/gzip/zip文件打包、压缩命令
- 一般网站需要多少流量多大空间才够用
- 真Unity3d_分享一个攻击连招的简单实现
- 虚拟机ipv4和6都没访问权限_ipv4和ipv6无网络访问权限 win10
- 计蒜客题解——T1769:最大岛屿
- 兰州营区武警官兵“浴雪”炼精兵
热门文章
- 6 自定义控件之屏蔽控件的设计时属性
- 设计模式的七大设计原则:其四:里氏替换原则
- 如何使用apiPOST进行模拟发送get、post、delete、put请求(支持文件上传)
- 03-07 APP 控件交互
- 软件测试模型-敏捷模型
- mpvue 调起子组件的方法_牢记 | 智鹏五金机电设备这些方法的使用更安全!
- android bitmap 加边框,Android 给圆角的Bitmap加边框
- 精通HTML5+CSS3需要学什么?
- 数据和access数据的区别_Access处理数据
- latch.await java有什么作用,Android系统。 Countdownlatch.await不起作用