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

奇妙的旅行[XDU1012]

系統 2322 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條評論
主站蜘蛛池模板: 日韩www视频 | 亚洲视频大全 | 亚洲免费一区二区 | 四虎网站1515hh四虎免费 | 豆国产93在线 | 亚洲 | 中文字幕日韩哦哦哦 | 亚洲精品国产精品一区二区 | 国产精品久久在线观看 | 久久久香蕉 | 欧美日韩亚洲综合在线一区二区 | 精品日韩一区二区三区 | 伊人久久网站 | 日韩欧美色 | 性欧美久久 | 久久亚洲在线 | 免费一级特黄视频 | www.夜夜| 欧美国产亚洲18 | 97久草| 看全色黄大色黄大片 视 | 日韩99精品| 爱爱小视频免费 | 一级呦女专区毛片 | 一级毛片无毒不卡直接观看 | 4虎最新地址 | 一级淫片免费看 | 精品九九久久 | 99热手机在线观看 | 日本不卡免费一区 | 精品国产一区二区三区www | 亚洲性免费| 精品亚洲无人区一区二区 | 亚洲久久久久久久 | 天天插天天操天天干 | 四虎视频网站 | 手机在线国产精品 | 久艾草国产成人综合在线视频 | 久久成人精品视频 | 亚洲欧洲尹人香蕉综合 | 国产欧美久久一区二区 | 国产欧美久久久精品 |