POJ 4001:抓住那头牛
题目
总时间限制: 2000ms 内存限制: 65536kB
描述
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:
1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟
假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?
输入
两个整数,N和K
输出
一个整数,农夫抓到牛所要花费的最小分钟数
样例输入
5 17
样例输出
4
思路
BFS。记录下每到一个点走过的step,遍历所有点即可。
代码
while True:try:N, K = input().split()N = int(N); K = int(K)MAX_LEN = 100000queue = []visited = [0 for _ in range(MAX_LEN + 1)]queue.append([N, 0])visited[N] = 1while len(queue):tmp = queue[0]queue.pop(0)if tmp[0] == K:print(tmp[1])breakif tmp[0] - 1 >= 0 and not visited[tmp[0] - 1]:queue.append([tmp[0] - 1, tmp[1] + 1])visited[tmp[0] - 1] = 1if tmp[0] + 1 <= MAX_LEN and not visited[tmp[0] + 1]:queue.append([tmp[0] + 1, tmp[1] + 1])visited[tmp[0] + 1] = 1if 2 * tmp[0] <= MAX_LEN and not visited[2 * tmp[0]]:queue.append([2 * tmp[0], tmp[1] + 1])visited[2 * tmp[0]] = 1except:break
POJ 4001:抓住那头牛相关推荐
- 广度优先搜索(BFS)——抓住那头牛(POJ 4001)
本文将以(POJ 4001)抓住那头牛 为例,讲解经典算法广度优先搜索(BFS)的STL写法 在实际写算法中,怎么能不使用更快.更方便.更准确.更高效的C++ STL模板呢 相信很多人都了解过广度优先 ...
- 抓住那头牛(POJ NO.2971)
抓住那头牛(POJ NO.2971) 总时间限制: 2000ms 内存限制: 65536kB Question 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0< ...
- 信息学奥赛一本通(1253:抓住那头牛)
1253:抓住那头牛 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14146 通过数: 5444 [题目描述] 农夫知道一头牛的位置,想要抓住它.农夫和 ...
- 【信奥赛一本通】1253:抓住那头牛(详细代码)
[广度优先搜索算法]1253:抓住那头牛 1.[题目描述] 2.[代码] 1.[题目描述] [题目描述] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000 ...
- Catch That Cow(抓住那头牛C++)
Catch That Cow Farmer John has been informed of the location of a fugitive cow and wants to catch he ...
- C++广度优先搜索算法之抓住那头牛(Catch that cow)
抓住那头牛: 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000).农夫有两种移动方式: ...
- 抓住那头牛(宽搜bfs)
Description 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N,牛位于点K. 农夫有两种移动方式: 1.从X移动到X−1或X+1,每次移动花费一分钟. 2.从X移动到 ...
- 抓住那头牛(BFS广搜)
描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次移动 ...
- 萌新做点小玩意儿DAY-9 利用队列式分支限界解决抓住那头牛问题
回溯法采用的是是深度优先搜索的策略,一般被用在找到一个问题的所有解.但是当问题只需要找到一个最优解的时候,可以使用分支限界的算法思想.分支限界算法思想就是以广度优先的策略对解空间树进行遍历,每个活结点 ...
最新文章
- 与 Scott Guthrie 一道感受技术激情 1月13日于北京
- 多目标决策问题1.1.1:线性加权法——熵权法确定权重
- python实现简单的api接口-对Python实现简单的API接口实例讲解
- Athentech Perfectly Clear中文版
- opencv中Mat矩阵的合并与拼接
- 网路知识:为什么宽带越用越慢,看完你就明白了
- 天气暖和了,我却感冒了
- MongoDB 通过 Java 代码 CRUD 数据库与集合
- VidMasta:搜索和观看在线电影、电视剧的神器
- 进程间通信IPC(一)pipe fifo mmap
- 银河麒麟服务器操作系统(Kylin) V10 arm64 飞腾/鲲鹏操作系统下载
- 大数据教程:数据可视化(ECharts)
- mysql如何存入汉字_[MYSQL]如何导入汉字单字到数据库
- 微信砍价 php,GitHub - YInJunWen/bcwx: vue2+thinkPHP5.1 前后端分离的微信砍价
- 关于不同操作系统下浏览器兼容问题
- S7-1200添加CALCULATE 指令
- python遍历指定文件夹下所有文件夹和文件
- getResource()的几种路径方式
- 中粮集团-“我买网”领导说了:
- Vue - webpack 打包兼容 360 浏览器和 IE 浏览器