• 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

     
  • 相关阅读:
    WPF Layout & Image异步加载
    WPF Binding Validation 数据验证
    推荐一个.NET 命令行参数Parser 库
    Windows 下 命令行增强工具
    Windbg 离线调试.Net 程序入门
    拼写检查算法 Golang 版
    新Blog
    WPF 实现Loading效果
    struct结构体的变长特性
    第2章 构造函数语意学
  • 原文地址:https://www.cnblogs.com/DarkValkyrie/p/10744638.html
Copyright © 2020-2023  润新知