zoukankan      html  css  js  c++  java
  • NOIP模拟赛 抓牛

    【题目描述】

           农夫约翰被通知,他的一只奶牛逃逸了!所以他决定,马上出发,尽快把那只奶牛抓回来.

    他们都站在数轴上.约翰在N(O≤N≤100000)处,奶牛在K(O≤K≤100000)处.约翰有两种办法移动,步行和瞬移:步行每秒种可以让约翰从x处走到x+l或x-l处;而瞬移则可让他在1秒内从x处消失,在2x处出现.然而那只逃逸的奶牛,悲剧地没有发现自己的处境多么糟糕,正站在那儿一动不动.

           那么,约翰需要多少时间抓住那只牛呢?

    【输入格式】

    仅有两个整数N和K

    【输出格式】

    最短时间

    【样例输入】

    5 17

    【样例输出】

    4

    暴力bfs

     1 #include<iostream>
     2 #include<cstring>
     3 #include<queue>
     4 using namespace std;
     5 
     6 int n,k;
     7 bool vis[500000];
     8 struct data{int x,t;};
     9 data q;
    10 
    11 int main()
    12 {
    13     cin>>n>>k;
    14     queue<data> Q;
    15     Q.push((data){n,0});
    16     while(!Q.empty())
    17     {
    18         q=Q.front();Q.pop();
    19         if(vis[q.x]) continue;
    20         if(q.x==k) break;
    21         vis[q.x]=1;
    22         if(q.x<k)
    23         {
    24             Q.push((data){q.x+1,q.t+1});
    25             Q.push((data){2*q.x,q.t+1});
    26         }
    27         if(q.x)
    28             Q.push((data){q.x-1,q.t+1});
    29     }
    30     cout<<q.t<<endl;
    31     return 0;
    32 }
  • 相关阅读:
    一、操作m'y's'ql
    十三、并发
    十二、异步_实践
    一、数据
    【2019-08-13】琐碎事才是突破
    【2019-08-12】迟到好过没到
    【2019-08-11】别人约我宵夜,我却约人早茶
    【2019-08-10】习惯跟时间有关
    【2019-08-09】一日之计在于晨
    【2019-08-08】少即是多,慢即是快
  • 原文地址:https://www.cnblogs.com/InWILL/p/6017285.html
Copyright © 2011-2022 走看看