• (简单) POJ 1278 Catch That Cow,回溯。


      Description

      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?

      也是典型的BFS的题目,我第一次设的数组最大是100000*10,然后过了,第二次100000+5,居然也过了。。。

      这个题就是从出发点开始bfs,有三条路可以走,一知道发现牛为止。

    代码如下:

    #include<iostream>
    #include<cstring>
    #include<queue>
    
    using namespace std;
    
    int N,K;
    int rem[100005];
    
    void bfs()
    {
        queue <int> que;
        int t;
    
        que.push(N);
        rem[N]=0;
        
        while(!que.empty())
        {
            t=que.front();
            que.pop();
    
            if(t==K)
                return;
    
            if(t*2<=100000&&rem[t*2]==-1)
            {
                rem[t*2]=rem[t]+1;
                que.push(t*2);
            }
            if(t+1<=100000&&rem[t+1]==-1)
            {
                rem[t+1]=rem[t]+1;
                que.push(t+1);
            }
            if(t-1>=0&&rem[t-1]==-1)
            {
                rem[t-1]=rem[t]+1;
                que.push(t-1);
            }
        }
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
    
        while(cin>>N>>K)
        {
            memset(rem,-1,sizeof(rem));
    
            if(K<=N)
                cout<<N-K<<endl;
            else
            {
                bfs();
                cout<<rem[K]<<endl;
            }
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    SVN的学习
    IIS 503 错误
    Windows系统CMD下常用命令
    Linux基础整理
    JavaEESSM框架配置文件
    JavaXML整理
    Java反射、反射练习整理
    Java网络通信协议、UDP、TCP类加载整理
    Java多线程、线程池和线程安全整理
    JavaProperties类、序列化流与反序列化流、打印流、commons-IO整理
  • 原文地址:https://www.cnblogs.com/whywhy/p/4228095.html
Copyright © 2020-2023  润新知