posts - 3,  comments - 1,  trackbacks - 0
  2009年3月8日
     摘要: 第N道的广搜,这几天就准备做广搜了...真的需要好好练习下... Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 187...  阅读全文
posted @ 2009-03-08 11:23 生活要低调 阅读(1265) | 评论 (1)编辑 收藏
  2009年3月7日
学会了队列.这道题的主要思想:

5先入列   把5出列  5 可以变成 4 ,6 , 10, ,把得到的数入列,然后再出列分别处理..如果前面出现过就不入列..定义一个计数数组,然后number[y - 1] = number[y] + 1;  number[y + 1] = number[y] + 1; number[y * 2] = number[y] + 1;

Catch That Cow
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 8341 Accepted: 2476

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.




Source Code

Problem: 3278 User: luoguangyao
Memory: 1048K Time: 110MS
Language: C++ Result: Accepted
  • Source Code
    #include <iostream>
        #include <queue>
        using namespace::std;
        int number[100001] = {0};
        bool num[100001] = {0};
        int main()
        {
        queue<int> x;
        int a;
        int b;
        scanf("%d%d",&a,&b);
        int count = 0;
        number[a] = 0;
        x.push(a);
        while (x.size())
        {
        int y = x.front();
        x.pop();
        num[y] = 1;
        if (y == b)
        {
        break;
        }
        else
        {
        if (y - 1 >= 0)
        {
        if (!num[y - 1])
        {
        x.push(y - 1);
        number[y - 1] = number[y] + 1;
        num[y - 1] = 1;
        }
        }
        if (y + 1 <= 100000)
        {
        if (!num[y + 1])
        {
        x.push(y + 1);
        number[y + 1] = number[y] + 1;
        num[y + 1] = 1;
        }
        }
        if (y * 2 <= 100000)
        {
        if (!num[y * 2])
        {
        x.push(y * 2);
        number[y * 2] = number[y] + 1;
        num[y * 2] = 1;
        }
        }
        }
        }
        cout << number[b] << endl;
        return 0;
        }
posted @ 2009-03-07 18:33 生活要低调 阅读(1349) | 评论 (0)编辑 收藏
     摘要: 这题没把我弄疯了.一个小时写完,改了2个小时...题目给的数据太弱了,需要自己写一些数据来验证...在这里给大家提供些数据题目 Maze Time Limit: 2000MS Memory Limit: 65536K ...  阅读全文
posted @ 2009-03-07 15:14 生活要低调 阅读(1118) | 评论 (0)编辑 收藏
仅列出标题  
<2019年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(1)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜