3060 抓住那头奶牛

USACO

 时间限制: 1 s
 空间限制: 16000 KB
 题目等级 : 黄金 Gold
 
题目描述 Description

农夫约翰被告知一头逃跑奶牛的位置,想要立即抓住它,他开始在数轴的N 点(0≤N≤100000),奶牛在同一个数轴的K 点(0≤K≤100000)。

约翰有两种移动方式:1 分钟内从x 点移动到x+1 或x-1;1 分钟内从x 点移动到2x。假设奶牛不会移动,约翰抓住它需要多少时间?

输入描述 Input Description

一行两个整数N 和K,用空格隔开。

输出描述 Output Description

约翰抓住它需要的最少时间

样例输入 Sample Input

5 17

样例输出 Sample Output

4

数据范围及提示 Data Size & Hint

见题目

分类标签 Tags 点此展开

 
 
这道题的难点是你需要处理三种方向。我是直接进行枚举的
 
如下:
 
 #include<cstdio>
#include<queue>
#define maxn 100001 using namespace std; int n,k;
bool v[maxn]; struct node
{
int pos,step;
}cur,nxt; queue<node>q;//该队列是为了储存结构体中的pos,以及step void Q_work()
{
cur.pos=n;
cur.step=;//进行初始化
q.push(cur);
v[n]=true;
if(n==k) //特判如果起点与重点是重合的
{
printf("");
return;
}
while(!q.empty())
{
cur=q.front();
q.pop();//取出队头元素,将其出队
nxt.step=cur.step+;//下一步一定是为当前的步数+1
for(int i=;i<=;i++)
{
switch(i)//枚举行走的三种情况
{
case : nxt.pos=cur.pos+; break;
case : nxt.pos=cur.pos-; break;
case : nxt.pos=cur.pos*; break;
}
if(nxt.pos>=&&nxt.pos<=&&!v[nxt.pos])
{//必须不超过边界并且当前并未走过
if(nxt.pos==k)
{
printf("%d",nxt.step);//如果==k则说明已经到达,则进行输出
return;
}
q.push(nxt);//将其入队
v[nxt.pos]=true;//并进行标记
}
}
}
} int main()
{
scanf("%d%d",&n,&k);
Q_work();
return ;
}

codevs 3060 抓住那头奶牛 x的更多相关文章

  1. 双向广搜 codevs 3060 抓住那头奶牛

    codevs 3060 抓住那头奶牛 USACO  时间限制: 1 s  空间限制: 16000 KB  题目等级 : 黄金 Gold   题目描述 Description 农夫约翰被告知一头逃跑奶牛 ...

  2. 3060 抓住那头奶牛 USACO

    3060 抓住那头奶牛 USACO 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 农夫约翰被告知一头逃跑奶牛的位置,想要立即抓住它, ...

  3. noi 2971 抓住那头牛

    2971:抓住那头牛 查看 提交 统计 提问 总时间限制:  2000ms 内存限制:  65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N ...

  4. 【bfs】抓住那头牛

    [题目] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次 ...

  5. OpenJudge 2971 抓住那头牛

    总时间限制:  2000ms 内存限制:  65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0< ...

  6. codevs贪吃的九头龙

    传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一天,有M 个 ...

  7. noi.openjudge——2971 抓住那头牛

    http://noi.openjudge.cn/ch0205/2971/ 总时间限制:  2000ms 内存限制:  65536kB 描述 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫 ...

  8. [poj3278]抓住那头牛

    题目描述 Farmer John has been informed of the location of a fugitive cow and wants to catch her immediat ...

  9. OpenJudge 4001:抓住那头牛

    题目链接 题解: 这个题可以用广搜来解决,从农夫到牛的走法每次都有三种选择,定义一个队列,把农夫的节点加进队列,然后以这三种走法找牛,队列先进先出,按顺序直到找到牛的位置. 代码: #include& ...

随机推荐

  1. IDEA神器

    破解 路径:添加-javaagent:JetbrainsCrack-2.7-release-str.jar的路径 例-javaagent:D:\Program Files\JetBrains\Inte ...

  2. GCC 编译参数

    -s 这个参数会把符号表从最终的可执行文件中删除.没有符号表,你就不能用gdb调试了,但是程序会更小 -O0 不做任何优化,这是默认的编译选项 -c 只编译不链接,产生.o文件,就是obj文件,不产生 ...

  3. [转帖]16nm国内最先进 兆芯展示x86 KX-6000八核处理器

    16nm国内最先进 兆芯展示x86 KX-6000八核处理器 https://www.cnbeta.com/articles/tech/847125.htm 在近日的2019北京国际互联网科技博览会暨 ...

  4. QQ管理

    ##用例1:查询数据 #01.查询QQ号码为54789625的所有好友信息,包括QQ号码,昵称,年龄 # # SELECT `relation`.RelationQQID AS QQ号码,`basei ...

  5. Element-ui 使用详细介绍

    一.后台搭建 使用 vue-admin-template 来快速搭建后台管理,它包含了 Element UI & axios & iconfont & permission c ...

  6. C++中的析构顺序和cosnt对象

    1,当程序中存在多个对象的时候,如何确定这些对象的析构顺序? 2,单个对象创建时构造函数的调用顺序(工程经验总结): 1,调用父类的构造过程: 2,调用成员变量的构造函数(调用顺序与声明顺序相同): ...

  7. 【LGR-063】洛谷11月月赛 I & MtOI2019 Ex Div.2 (A-C)

    [MtOI2019]黑蚊子多 : 按题意模拟 #include<iostream> #include<cstdio> #include<cstring> using ...

  8. js倒计时跳转jquery插件版

    <script type="text/javascript" src="js/jquery1.91.min.js"></script> ...

  9. activemq热备与消息丢失

    1. 解压 tar -zxvf apache-activemq-5.12.0-bin.tar.gz2. 改名 mv apache-activemq-5.12.0 activemq3. cd activ ...

  10. DataTable中如何去除重复的项 (获得某个字段中的不重复项)

    就是获取DataTable中某一列的值,因为从数据库中检索数据时,按照2个字段进行分组,而要获得的那一列刚好在分组这两列中,所以该列的值必然有重复,于是就想到了去除重复,有了思路以后在网上看了一些方法 ...