zoukankan      html  css  js  c++  java
  • Catch That Cow (BFS)POJ

    Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.

    • Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
    • Teleporting: FJ can move from any point X to the point 2 × X in a single minute.

    If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?

    Input
    Line 1: Two space-separated integers: N and K
    Output
    Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
    Sample Input
    5 17
    Sample Output
    4
    Hint
    The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.

    我的题解:这个是一维的BFS,和二维的差不多;不过临界值题目没告诉我们,应该要比1e5+1大才好.

    #include <iostream>
    #include <queue>
    #include <cstring>
    const int N=1e5+5;
    using namespace std;
    int a[N];
    int k;
    int bfs(int now){
        queue<int> q;
        q.push(now);
        while(!q.empty()){
            now=q.front();q.pop();
            if(now==k) return a[now];
            if(now+1<=N-4&&a[now+1]==-1) q.push(now+1),a[now+1]=a[now]+1;
            if(now-1>=0&&a[now-1]==-1) q.push(now-1),a[now-1]=a[now]+1;
            if(now*2<=N-4&&a[now*2]==-1) q.push(now*2),a[now*2]=a[now]+1;
        }
        return 0;
    }
    int main()
    {
        int n;
        cin>>n>>k;
        memset(a,-1,sizeof(a));
        a[n]=0;
        cout<<bfs(n)<<endl;
        //cout << "Hello world!" << endl;
        return 0;
    }
    
  • 相关阅读:
    开启LOH压缩?
    搭建Hadoop2.6.4伪分布式
    EntityFramework CodeFirst SQLServer转Oracle踩坑笔记
    glob模式
    在Oracle中使用Entity Framework 6 CodeFirst
    IE9,10中console对象的bug
    ViewBag是如何实现的
    esbuild vs webpack
    企业微信公众号本地调试auto2.0
    vmware15.5的解锁mac系统插件
  • 原文地址:https://www.cnblogs.com/-yjun/p/10646468.html
Copyright © 2011-2022 走看看