1701: 抓住那头牛

2022/4/1 23:22:27

本文主要是介绍1701: 抓住那头牛,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目:

 

 这道题呢是一位的不需要用结构体一维数组就够。

bfs的模板加上亿点改动即可:

  1.删掉所有结构体。

  2.这道题不用for+方向数组     单个手写。

  3.这道题不用ans,用vis代替即可(just like vis[old+1]=vis[old]+1),最后输出vis[k]。

这道题呢非常之难简单

所以直接上代码:

另外祝大家清明快乐!

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int vis[N]={0},n,k;
queue <int> q;
void bfs()
{
    q.push(n);
    while(!q.empty())
    {
        int op=q.front();
        if(op==k)
        {
            return;
        }
        if(op+1<N-10&&vis[op+1]==0)
        {
            q.push(op+1);
            vis[op+1]=vis[op]+1;
        }
        if(op-1>=0&&vis[op-1]==0)
        {
            q.push(op-1);
            vis[op-1]=vis[op]+1;
        }
        if(op*2<N-10&&vis[op*2]==0)
        {
            q.push(op*2);
            vis[op*2]=vis[op]+1;
        }
        q.pop();
    }
}
int main()
{
    cin>>n>>k;
    vis[n]=1;
    bfs();
    cout<<vis[k]-1;
    return 0;
}

 



这篇关于1701: 抓住那头牛的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程