题意:农夫的牛跑了,给出农夫和牛在坐标轴上的位置n和k,农夫每次只能从点n移动到n-1、n+1或者n*2的位置。输出抓到牛所需要的最小移动次数。

思路:思路明显的bfs,每次搜索只按照这三种方式,标记访问过的点防止重复访问即可。

#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long  LL;
typedef pair<int,int> P;
const int N=1000000+5;
int g[N],n,k;
int bfs(){if(n==k)return 0;queue<int> q;q.push(n);while(q.size()){int p=q.front();q.pop();if(p-1>=0&&p-1<=1000000&&g[p-1]==-1){g[p-1]=g[p]+1;if(p-1==k)return g[p-1];q.push(p-1);}if(p+1>=0&&p+1<=1000000&&g[p+1]==-1){g[p+1]=g[p]+1;if(p+1==k)return g[p+1];q.push(p+1);}if(p*2>=0&&p*2<=1000000&&g[p*2]==-1){g[p*2]=g[p]+1;if(p*2==k)return g[p*2];q.push(p*2);}}
}
int main(){while(~scanf("%d%d",&n,&k)){memset(g,-1,sizeof(g));g[n]=0;printf("%d\n",bfs());}
}

HDU2717 Catch That Cow(bfs)相关推荐

  1. POJ 3278 Catch That Cow(BFS)

    题目网址:http://poj.org/problem?id=3278 题目: Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Tot ...

  2. HDU 2717 Catch That Cow(BFS)

    题目链接 好裸,BFS.杭电多组..2A.. 1 #include <stdio.h> 2 #include <string.h> 3 int p[100001],o[1000 ...

  3. C - Catch That Cow(BFS)

    找奶牛 有三种移动方式,作为BFS搜索的方向 利用 当 n > k 时只能向后走,优化结果 #include<iostream> #include<cstring> #i ...

  4. poj 3278 Catch That Cow (bfs)

    题目:http://poj.org/problem?id=3278 题意: 给定两个整数n和k 通过 n+1或n-1 或n*2 这3种操作,使得n==k 输出最少的操作次数 1 #include< ...

  5. POJ3278 HDU2717 Catch That Cow【BFS】

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 100475   Accepted: 31438 ...

  6. POJ3278Catch That Cow(BFS)

    Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 70652   Accepted: 22216 ...

  7. HDU-2717-Catch That Cow(bfs)

                                           Catch That Cow Problem Description Farmer John has been infor ...

  8. (BFS)Catch That Cow(poj3278)

    题目: 农夫知道一头牛的位置,想要抓住它.农夫和牛都于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<=K<=100000) .农夫有两种移动方式 ...

  9. Catch That Cow(POJ-3278)

    Problem Description Farmer John has been informed of the location of a fugitive cow and wants to cat ...

最新文章

  1. LeetCode 850. Rectangle Area II
  2. 7.unity插件T4M使用
  3. Android Handler与Looper原理简析
  4. python之WEB开发:图片管理
  5. Boost:由内部绑定的值返回的智能指针的测试程序
  6. 设计模式学习之Factory Method模式和Abstract Factory模式
  7. SAP云平台 Document Information Extraction服务测试
  8. mybatis-plus 查询,删除
  9. thinkphp 多字段排序
  10. 罗永浩“卖艺”还债能成?邀约不断,币圈抢着送钱
  11. 5 thinkpad 黑将评测_ThinkPad L380视频评测:全能型商务助手
  12. 【三维路径规划】基于matlab A_star算法无人机山地三维路径规划【含Matlab源码 266期】
  13. 【JS】js打开新窗口与页面跳转
  14. 《符号学:原理与推演》引论
  15. jquery 实现抽奖小程序
  16. pt工具的使用(6) pt-table-sync的使用
  17. linux 命令 cups,linux cups 打印机命令说明
  18. TypeError: decoding str is not supported
  19. Cascade EF-GAN: 局部聚焦渐进式面部表情编辑
  20. 解读PureMVC框架

热门文章

  1. 移动浏览器的内核WebKit介绍
  2. .NET项目开发—浅谈面向对象的纵横向关系、多态入口,单元测试(项目小结)...
  3. AP6275S移植总结
  4. 如何在Ubuntu 18.04上安装ERPNext堆栈
  5. 安卓凯立德4.2不能运行的解决方法
  6. 重庆自考本科可以选择全日制吗?
  7. 院士李幼平:播存技术促进NGB网络建设
  8. 简易小说爬虫显示器的不同语言实现示例(Python-tkinter-wxpython-pyqt5-Flask,Java,C,C++,C#,Lua,Go,Kotlin,HTML,JS,VB,PHP,R)
  9. 华为linux可以装win7吗,华为电脑如何重装Windows7系统?
  10. 双系统安装ubuntu 22.04 LTS(一步到位)