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