• 西北工业大学2012级算法机试题 1417.Catch That Cow


    <pre class="cpp" name="code"><span style="color:#333399;">/*
    1417.Catch That Cow
    时限:1000ms 内存限制:10000K  总时限:3000ms
    描述
    一个农夫的牛丢了,现在要把牛找回来。
    假设农夫和牛都在X轴上,牛不会动,农夫有两种移动方式。
    步行:假设农夫当前位置是X,那么他可以走到X-1或X+1。
    传送:假设农夫当前位置是X,那么他可以传送到2*X。(话说为何会传送还要做农夫)
    无论那种方法,一次移动都需要花费一分钟的时间。
    现在给你农夫和牛的初试坐标,请你输出农夫最快需要花多长时间可以找到牛。
    
    
    输入
    只有一行,包括两个整数N和K,分别表示农夫和牛的初试位置。
    
    输出
    输出一个整数,表示农夫最少要花多少分钟才能够找到牛。
    
    输入样例
    5 17
    
    
    输出样例
    4
    
    
    By Yuan.c
    2014.6.23
    其实这个题非常简单,就是一个反向的深搜,只是当时考试的时候没有反应过来,真的是很遗憾
    */
    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int x,y;
    int mark[1000000];
    int sum[1000000];
    int a[1000000];
    int sta=0,end=0,res=0;
    void solve()
    {int m;
        while(1){
          if(a[sta]==x){
             res=sum[sta];
             break;}
    
        m=a[sta]+1;
        if(mark[m]==0){
           sum[++end]=sum[sta]+1;
           mark[m]=1;
           a[end]=m;
           }
    
           m=a[sta]-1;
        if(mark[m]==0){
           sum[++end]=sum[sta]+1;
           mark[m]=1;
           a[end]=m;
           }
         m=a[sta];
           if(m%2==0){m=a[sta]/2;
        if(mark[m]==0){
           sum[++end]=sum[sta]+1;
           mark[m]=1;
           a[end]=m;
           }}
           sta++;}
    }
    
    
    int main()
    {
    
        cin>>x>>y;
        sum[0]=0;
        a[0]=y;
        solve();
        cout<<res<<endl;
        return 0;
    }
    </span>
    
    


  • 相关阅读:
    react 之 ref
    再看redux
    localtunnel内网服务器暴露至公网
    Relay GraphQL理解
    微信小程序
    React Router
    webpack
    Redux
    bootstrap
    jQuery中.bind() .live() .delegate() .on()区别
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254551.html
Copyright © 2020-2023  润新知