亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

奇妙的旅行[XDU1012]

系統 2042 0
Problem 1012 - 奇妙的旅行
Time Limit : 1000MS ? Memory Limit : 65536KB ? Difficulty :
Total Submit : 396? Accepted : 116? Special Judge : No
Description

  炸雞兒非常喜歡旅行,而且喜歡在坐標軸上旅行,從起點A到終點B(0<=A,B<=100000)。他旅行的方法很特殊,喜歡用跳的,每次跳一個地方只有三種方法:
從點C跳到點C+1。
從點C跳到點C-1。
從點C跳到點2*C。
請問他從A跳到B至少需要多少步?

Input
每組數據兩個整數A,B(0<=A,B<=100000)。
Output
每例輸出一行,表示至少需要的步數。
Sample Input
1 100000
0 100000
Sample Output
21
22
Hint
?
Source
Wang Miao
不知為什么,最近特喜歡做這樣的水水的bfs.
          #include<stdio.h>
          
            

#include
          
          <
          
            string
          
          .h>
          
            

#include
          
          <queue>


          
            using
          
          
            namespace
          
          
             std;


          
          
            struct
          
          
             node

{

    
          
          
            int
          
          
             val,step;

};


          
          
            int
          
          
             S,T;


          
          
            bool
          
           s[
          
            200010
          
          
            ];


          
          
            int
          
          
             bfs()

{

    memset(s,
          
          
            false
          
          ,
          
            sizeof
          
          
            (s));

    queue
          
          <node>
          
             q;

    
          
          
            while
          
           (!
          
            q.empty()) q.pop();

    node st;

    st.val
          
          =
          
            S;

    st.step
          
          =
          
            0
          
          
            ;

    q.push(st);

    s[S]
          
          =
          
            true
          
          
            ;

    
          
          
            while
          
           (!
          
            q.empty())

    {

        node st
          
          =
          
            q.front();

        q.pop();

        
          
          
            if
          
           (st.val==T) 
          
            return
          
          
             st.step;

        
          
          
            if
          
           (st.val+
          
            1
          
          <=T*
          
            2
          
          
            )

        
          
          
            if
          
           (!s[st.val+
          
            1
          
          
            ])

        {

            s[st.val
          
          +
          
            1
          
          ]=
          
            true
          
          
            ;

            node tmp
          
          =
          
            st;

            tmp.step
          
          ++
          
            ;

            tmp.val
          
          =st.val+
          
            1
          
          
            ;

            q.push(tmp);

        }

        
          
          
            if
          
           (st.val-
          
            1
          
          >
          
            0
          
          
            )

        
          
          
            if
          
           (!s[st.val-
          
            1
          
          
            ])

        {

            s[st.val
          
          -
          
            1
          
          ]=
          
            true
          
          
            ;

            node tmp
          
          =
          
            st;

            tmp.step
          
          ++
          
            ;

            tmp.val
          
          =st.val-
          
            1
          
          
            ;

            q.push(tmp);

        }

        
          
          
            if
          
           ((st.val<<
          
            1
          
          )<=T*
          
            2
          
          
            )

        
          
          
            if
          
           (!s[st.val<<
          
            1
          
          
            ])

        {

            s[st.val
          
          <<
          
            1
          
          ]=
          
            true
          
          
            ;

            node tmp
          
          =
          
            st;

            tmp.step
          
          ++
          
            ;

            tmp.val
          
          =st.val<<
          
            1
          
          
            ;

            q.push(tmp);

        }

    }

}


          
          
            int
          
          
             main()

{

    
          
          
            while
          
           (scanf(
          
            "
          
          
            %d%d
          
          
            "
          
          ,&S,&T)!=
          
            EOF)

    {

        
          
          
            if
          
           (S>
          
            T)

        {

            printf(
          
          
            "
          
          
            %d\n
          
          
            "
          
          ,S-
          
            T);

            
          
          
            continue
          
          
            ;

        }

        
          
          
            int
          
           ans=
          
            bfs();

        printf(
          
          
            "
          
          
            %d\n
          
          
            "
          
          
            ,ans);

    }

    
          
          
            return
          
          
            0
          
          
            ;

}
          
        

?

奇妙的旅行[XDU1012]


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美 亚洲 激情 | 日韩精品一区二区三区中文字幕 | 日本午夜大片a在线观看 | 日本高清中文字幕一区二区三区a | 日本中文字幕在线观看视频 | 久久97精品久久久久久清纯 | 久久精品成人免费网站 | 成人影院vs一区二区 | 亚洲不卡免费视频 | 久久99热精品免费观看k影院 | 韩国精品videosex性韩国 | 国产精品一区二区欧美视频 | 久久成人激情视频 | 国产精品大全国产精品 | 影音先锋久草 | 精品久久久久久中文字幕2017 | 久久手机免费视频 | 国产在线99 | 99热久久这里只有精品 | 伊人免费网 | 欧美高清在线视频在线99精品 | 女人十八毛片免费观 | 九九热在线免费观看 | 亚洲成人免费在线 | 香蕉视频在线观看黄 | 精品午夜寂寞黄网站在线 | 国产精品一区在线观看你懂的 | 手机看片国产永久1204 | 九天玄帝诀王凡小说免费阅读 | 亚洲人成一区 | 中文字幕国产在线观看 | 亚洲精品久久9热 | 免费鲁丝片一级在线观看 | 成年视频免费 | 成人短视频在线观看 | 亚洲欧美精品在线 | 超碰小说 | 五月婷婷在线免费观看 | 亚洲精品久久久久综合网 | 亚洲激情小视频 | 国产成人综合日韩精品婷婷九月 |