poj 3278 catch that cow
http://poj.org/problem?id=3278
bfs,用到了stl的queue
1
2
3 /* ***********************************************
4 Author :111qqz
5 Created Time :2016年02月19日 星期五 15时45分05秒
6 File Name :3278.cpp
7 ************************************************ */
8
9 #include <algorithm>
10 #include <cstdio>
11 #include <iostream>
12 #include <cstring>
13 #include <string>
14 #include <cmath>
15 #include <map>
16 #include <stack>
17 #include <queue>
18
19 using namespace std;
20 typedef long long LL;
21 const int inf = 8E8;
22 const int N=2E5+7;
23 int d[N];
24 int n,k;
25 void bfs()
26 {
27 queue<int> q;
28 memset(d,-1,sizeof(d));
29 q.push(n);
30 d[n]=0;
31 while (!q.empty())
32 {
33 int x = q.front();
34 q.pop();
35 if ( x==k )
36 {
37 break;
38 }
39 int next[10];
40 next[1]=x-1;
41 next[2]=x+1;
42 next[3]=2*x;
43 for ( int i = 1; i <= 3 ; i++ )
44 {
45 if (next[i]>=0&&next[i]<=100000&&d[next[i]]==-1)
46 {
47 d[next[i]]=d[x]+1;
48 q.push(next[i]);
49 }
50 }
51 }
52
53
54 }
55 int main()
56 {
57 while (scanf("%d %d",&n,&k)!=EOF)
58 {
59 bfs();
60 cout<<d[k]<<endl;
61 }
62 return 0;
63 }
64
65