【openjudge】抓住那头牛
描述
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:
输入
输出
样例输入
5 17
样例输出
4
犯了一个我认为比较有意义的错误:广搜中必须要出队之后达到目标再输出。否则提前输出可能会因为没判断入队条件而出错
【代码】
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAX 100000
using namespace std;
struct hp{int num,step;
}queue[100005];
int n,m,head,tail,now,step,ans;
bool b[100005];
int main(){scanf("%d%d",&n,&m);ans=MAX;head=0,tail=1;queue[tail].num=n,queue[tail].step=0,b[n]=true;while (head<tail){++head;now=queue[head].num,step=queue[head].step;if (now==m) {printf("%d",step);return 0;}if (now+1<=MAX&&!b[now+1]) b[now+1]=true,queue[++tail].num=now+1,queue[tail].step=step+1;if (now-1>=0&&!b[now-1]) b[now-1]=true,queue[++tail].num=now-1,queue[tail].step=step+1;if (now*2<=MAX&&!b[now*2]) b[now*2]=true,queue[++tail].num=now*2,queue[tail].step=step+1; }
}
【openjudge】抓住那头牛相关推荐
- 信息学奥赛一本通(1253:抓住那头牛)
1253:抓住那头牛 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14146 通过数: 5444 [题目描述] 农夫知道一头牛的位置,想要抓住它.农夫和 ...
- 广度优先搜索(BFS)——抓住那头牛(POJ 4001)
本文将以(POJ 4001)抓住那头牛 为例,讲解经典算法广度优先搜索(BFS)的STL写法 在实际写算法中,怎么能不使用更快.更方便.更准确.更高效的C++ STL模板呢 相信很多人都了解过广度优先 ...
- 【信奥赛一本通】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).农夫有两种移动方式: ...
- 抓住那头牛(POJ NO.2971)
抓住那头牛(POJ NO.2971) 总时间限制: 2000ms 内存限制: 65536kB Question 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0< ...
- 抓住那头牛(宽搜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 利用队列式分支限界解决抓住那头牛问题
回溯法采用的是是深度优先搜索的策略,一般被用在找到一个问题的所有解.但是当问题只需要找到一个最优解的时候,可以使用分支限界的算法思想.分支限界算法思想就是以广度优先的策略对解空间树进行遍历,每个活结点 ...
最新文章
- applet打包的MANIFEST.MF配置
- Xamarin XAML语言教程基础语法篇大学霸
- python闭包的延迟绑定_浅析Python的闭包和延迟绑定
- insert 语句_替换某字段中的特定字符串——MySQL REPLACE 与INSERT 函数详解
- 超出了GC开销限制– Java堆分析
- kibana创建es索引_java操作es动态创建索引(按月生成),索引类型,索引别名
- onvif规范的实现:server端Discovery实现,通过OnvifTestTool12.06测试
- MATLAB中如何删除坐标上已画出的内容
- 虚拟dom_虚拟DOM与dom diff
- 报告PPT|Python网络程序设计教学要点与案例分享(含音频)
- leetcode python3 简单题69. Sqrt(x)
- shiro-cas------整合springboot客户端
- 解压 .solitairetheme8 文件
- LIBSVM使用方法及参数设置
- 薄板样条插值(Thin Plate Spline)
- 关于Palantir -第五部分:浏览器应用
- 华为服务器虚拟云主机,虚拟云主机和虚拟云服务器
- Android Text文字详解
- 前端兼容性问题解决方案
- SQL语句(六)_NUIST