# **Catch That Cow(抓住那只奶牛)** 【题意】:农场主要去追一直逃跑的牛,每次移动有三种选择,位置加一,位置减一,位置乘二,要找到最快的方法让农夫追到牛(也就是移动的次数最少,这个过程是线性的) 具体的题目请见:[原题链接:](3278 -- Catch That Cow)。 思路: 从题目中位置移动就可以看出是一个搜索问题,又加上要找最快的方法,也就是在暗示这个是一个广搜题,每次搜索有三个方向,是一个常规题,不过也有细节,请跟随笔者我思路。
代码:
#include
#include
#include
#include
using namespace std;
int vis[100005],step[100005];//vis数组是为了避免重复的搜索,step数组则是记录移动的次数。
int bfs(int a,int b)
{
queueq;
q.push(a);
step[1]=0;
vis[a]=1;
if(a>b)
return a-b;//这里是一个小坑,当农夫的位置比奶牛大的时候农夫只能通过自减到达奶牛的位置。
while(!q.empty())
{
int k=q.front();
q.pop();
if(k==b)
return step[k];
else
{
if(!vis[k-1]&&k-1>=0&&k-1>n>>k;//单组输入。
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?
立即登录/注册


微信扫码登录