王道机试指南 例题9.1 Catch That Cow

题目:

题目大意:

算法及原理:

代码:

#include <queue>
#include <iostream>
using namespace std;

struct Status{
    int n;//记录走到哪了
    int t;//记录当前时间
    Status(int n0,int t0):n(n0),t(t0) {};
};

int BFS(int n,int k){
    Status st(n,0);//初始状态位于n处,时间为0
    queue<Status> q;
    q.push(st);//初始状态入队
    while(q.empty()==0){
        Status tmp=q.front();//取队头元素
        if(tmp.n==k)//走到k处则结束循环
            return tmp.t;
        q.pop();//队头元素出队
        for(int i=0;i<3;i++){//三种可能的状态依次入队
            Status ns(tmp.n,tmp.t+1);
            if(i==0) ns.n--;
            else if(i==1) ns.n++;
            else ns.n=ns.n*2;
            q.push(ns);
        }
    }
    return -1;
}

int main(){
    int n,k;
    while(cin>>n>>k){
        int minu=BFS(n,k);
        cout<<minu<<endl;
    }

    return 0;
}

运行结果:

全部评论
谢谢uu的分享
1 回复 分享
发布于 2023-02-13 12:48 湖北
给楼主扣一波666
1 回复 分享
发布于 2023-02-13 12:39 辽宁

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 14:23
steelhead:你回的有问题,让人感觉你就是来学习的
点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-03 14:32
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务