luoguP1588丢失的牛

Posted dlsinnocence

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luoguP1588丢失的牛相关的知识,希望对你有一定的参考价值。

Luogu题目链接:https://www.luogu.org/problem/P1588

思路:有三种走法,x+1,x-1,x*2 可以宽搜做此题

#include <bits/stdc++.h>
using namespace std;
#define maxn 1000000
int used[maxn];
struct node{
    int x,t;//x记录坐标,t记录步数
};
//宽搜
int bfs(int x,int y){
    queue<node> q;
    q.push((node){x,0});
    while(!q.empty()){
        node n;
        n=q.front();
        q.pop();
        for(int i=1;i<=3;i++){
            node v;
            v.t=n.t+1;
            if(i==1) v.x=n.x-1;//x-1的情况
            if(i==2) v.x=n.x+1;//x+1的情况
            if(i==3) v.x=n.x*2;//x*2的情况
            if(v.x<1||v.x>maxn) continue;
            if(used[v.x]) continue;
            if(v.x==y) return v.t;//走到了牛的位置,返回步数
            used[v.x]=1;
            q.push(v);
        }
    }
}
int main(){
    int n;
    int a,b;
    cin>>n;
    while(n--){
    memset(used,0,sizeof(used));//初始化
    cin>>a>>b;
    if(a==0) cout<<0;
    cout<<bfs(a,b)<<endl;}
}

 

以上是关于luoguP1588丢失的牛的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1588 丢失的牛

洛谷 P1588 丢失的牛

[Luogu P1588]丢失的牛

Openjudge 2971:抓住那头牛&&P1588 丢失的牛

浴谷夏令营题单

AcWing 1775. 丢失的牛(简单模拟)