2009年3月8日
摘要: 第N道的广搜,这几天就准备做广搜了...真的需要好好练习下... Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 187...  阅读全文
posted @ 2009-03-08 11:23 生活要低调 阅读(1301) | 评论 (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 生活要低调 阅读(1442) | 评论 (0)编辑 收藏
摘要: 这题没把我弄疯了.一个小时写完,改了2个小时...题目给的数据太弱了,需要自己写一些数据来验证...在这里给大家提供些数据题目 Maze Time Limit: 2000MS Memory Limit: 65536K ...  阅读全文
posted @ 2009-03-07 15:14 生活要低调 阅读(1155) | 评论 (0)编辑 收藏
 < 2020年9月 >
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

•