zoukankan      html  css  js  c++  java
  • 1253:抓住那头牛

    题目来源:http://ybt.ssoier.cn:8088/problem_show.php?pid=1253

    1253:抓住那头牛


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 4111     通过数: 1587 

    【题目描述】

    农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000)。农夫有两种移动方式:

    1、从X移动到X-1或X+1,每次移动花费一分钟

    2、从X移动到2*X,每次移动花费一分钟

    假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?

    【输入】

    两个整数,N和K。

    【输出】

    一个整数,农夫抓到牛所要花费的最小分钟数。

    【输入样例】

    5 17

    【输出样例】

    4

    解析:
    本题并不难,属于简单的BFS,需要主要注意的是本题需要计步。

    参考代码:
    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    #define N 100010
    using namespace std;
    int dir[]={-1,1};
    bool s[N*10]={0};//曾经到达过的点无需重复计算 
    struct node{
        int x,step;
    }q[N*10];
    void bfs(int n,int k)
    {
        int head=0,tail=1;
        q[tail].step=0;q[tail].x=n;
        s[n]=1;
        do
        {
            head++;
            int step=q[head].step;//计步器 
            int x=q[head].x;
            
            if(x==k)//判断是否到达 
            {
                printf("%d",step);
                return;
            }
            
            int nx;
            nx=x*2;
            if(nx>=0&&!s[nx]&&nx<N)
            {
                tail++;
                s[nx]=1;
                q[tail].step=step+1;
                q[tail].x=nx;
            }
            for(int i=0;i<2;i++)
            {
                nx=x+dir[i];
                if(0<=nx&&!s[nx]&&nx<N) 
                {
                    tail++;
                    s[nx]=1;
                    q[tail].step=step+1;
                    q[tail].x=nx;
                }
            }
        }while(head<tail);
    }
    int main()
    {
        int n,k;
        scanf("%d%d",&n,&k);
        bfs(n,k);
        return 0;
    }

    2019-04-21 12:11:20

     
  • 相关阅读:
    原创 爱因斯坦迷题及推导过程
    惊闻姑姑家女婿去世,哀叹生命之脆弱,死亡如此接近
    京东自营预售逻辑
    自营SKU绑定逻辑
    自营结算解释&对账逻辑
    CPS逻辑
    京东搜索结果数据异常
    C++静态库中使用_declspec(dllexport) 不能导出函数的问题
    HTTP+SVN访问速度慢的问题
    Python log
  • 原文地址:https://www.cnblogs.com/DarkValkyrie/p/10744638.html
Copyright © 2011-2022 走看看