• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            poj3278

            Catch That Cow

            Time Limit: 2000MS Memory Limit: 65536K
            Total Submissions: 27595 Accepted: 8495

            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?

            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.

            挺簡單的廣搜,不知道哪里錯了,wa了近20遍,悲劇,可能是邊界沒處理好
             1#include<stdio.h>
             2#include<string.h>
             3#include<math.h>
             4#define inf 100000
             5#define MAX 1000000
             6int n,k,ans;
             7long long q[MAX+1],number[inf+1];
             8short flag[inf+1];
             9int bfs()
            10{
            11    int head,tail;
            12    long long now,now1;
            13    head=0;
            14    tail=1;
            15    q[tail]=n;
            16    flag[n]=1;
            17    number[n]=1;
            18    while(head<tail)
            19    {
            20        head++;
            21        now=q[head];
            22        if (now==k)
            23        {
            24            return number[now]-1;
            25        }

            26        now1=now-1;
            27        if (now1>=0&&now1<=inf&&!flag[now1])
            28        {
            29            tail++;
            30            q[tail]=now1;
            31            flag[now1]=1;
            32            number[now1]=number[now]+1;
            33        }

            34        now1=now+1;
            35        if (now1>=0&&now1<=inf&&!flag[now1])
            36        {
            37            tail++;
            38            q[tail]=now1;
            39            flag[now1]=1;
            40            number[now1]=number[now]+1;
            41        }

            42        now1=now*2;
            43        if (now1>=0&&now1<=inf&&!flag[now1])
            44        {
            45            tail++;
            46            q[tail]=now1;
            47            flag[now1]=1;
            48            number[now1]=number[now]+1;
            49        }

            50    }

            51}

            52int main()
            53{
            54    while (scanf("%d%d",&n,&k)!=EOF)
            55    {
            56        if(n==k)
            57        {
            58            printf("0\n");
            59            continue;
            60        }

            61        if (k==0)
            62        {
            63            printf("%d\n",n);
            64            continue;
            65        }

            66        memset(q,0,sizeof(q));
            67        memset(number,0,sizeof(number));
            68        memset(flag,0,sizeof(flag));
            69        ans=bfs();
            70        printf("%d\n",ans);
            71    }

            72    return 0;
            73}

            74
            75


            posted on 2012-03-20 19:44 jh818012 閱讀(171) 評論(0)  編輯 收藏 引用

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            常用鏈接

            留言簿

            文章檔案(85)

            搜索

            最新評論

            • 1.?re: poj1426
            • 我嚓,,輝哥,,居然搜到你的題解了
            • --season
            • 2.?re: poj3083
            • @王私江
              (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
            • --游客
            • 3.?re: poj3414[未登錄]
            • @王私江
              0ms
            • --jh818012
            • 4.?re: poj3414
            • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
            • --王私江
            • 5.?re: poj1426
            • 評論內容較長,點擊標題查看
            • --王私江
            青青草国产精品久久| 久久精品国产亚洲一区二区三区| 国产成人AV综合久久| 久久久久久av无码免费看大片| 伊人久久精品影院| 无码AV波多野结衣久久| 久久伊人精品青青草原高清| 国产91久久综合| 伊人久久精品无码二区麻豆| 久久精品九九亚洲精品天堂 | 久久久久这里只有精品| 精品久久人人爽天天玩人人妻| 久久99国产精品久久99| 国产精品久久久久久久久软件| 久久99精品国产| 久久久久久久精品妇女99| www亚洲欲色成人久久精品| 综合久久国产九一剧情麻豆| 国产成人综合久久精品尤物| 久久www免费人成看片| 久久精品女人天堂AV麻| 99久久免费国产精品| 久久久久亚洲av无码专区导航 | 久久久久97国产精华液好用吗| 久久人人爽爽爽人久久久| 怡红院日本一道日本久久| 久久夜色精品国产欧美乱| 日本亚洲色大成网站WWW久久 | 国产农村妇女毛片精品久久| 久久久久久久久无码精品亚洲日韩 | 久久精品无码一区二区三区日韩| 77777亚洲午夜久久多喷| 精品国产青草久久久久福利| 亚洲欧美日韩久久精品 | 国产A级毛片久久久精品毛片| 久久免费大片| 久久天天躁狠狠躁夜夜2020老熟妇 | 手机看片久久高清国产日韩 | 久久99热这里只有精品国产| 精品久久久久久无码人妻热 | 久久青青色综合|