您当前的位置: 首页 >  搜索

MangataTS

暂无认证

  • 6浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Catch That Cow抓住那只奶牛(BFS,广度优先搜索)

MangataTS 发布时间:2020-01-22 18:47:00 ,浏览量:6

# **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            
关注
打赏
1665836431
查看更多评论
0.0529s