zoukankan      html  css  js  c++  java
  • poj 3278 Catch That Cow

    水题,搜索一个数转化成另一个数。

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <queue>
     4 using std::queue;
     5 #define N 100010
     6 int d[N];
     7 bool vis[N];
     8 int m,n,a;
     9 int nxt(int x)
    10 {
    11     int t;
    12     if(x==0) t = a-1;
    13     else if(x==1) t=a+1;
    14     else t = a<<1;
    15     return t;
    16 }
    17 int bfs()
    18 {
    19     if(m==n) return 0;
    20     int b,i;
    21     memset(vis,0,N);
    22     queue <int> q;
    23     q.push(m);
    24     d[m] = 0;
    25     vis[m] = 1;
    26     while(!q.empty())
    27     {
    28         a = q.front();
    29         q.pop();
    30         for(i = 0; i < 3; i++)
    31         {
    32             b = nxt(i);
    33             if(b >= 0 && b <= 100000 && !vis[b])
    34             {
    35                 if(b == n) return d[a]+1;
    36                 q.push(b);
    37                 vis[b] = 1;
    38                 d[b] = d[a]+1;
    39             }
    40         }
    41     }
    42     return -1;
    43 }
    44 int main()
    45 {
    46     while(~scanf("%d%d",&m,&n))
    47         printf("%d\n",bfs());
    48     return 0;
    49 }
  • 相关阅读:
    课二 计算机硬件组成余下
    课一 计算机硬件组成
    电梯演讲视频
    团队成员个人介绍
    day-65Django
    day-64Django
    day-63Django
    day-62Django
    day-61Django
    day-60Django
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/2761710.html
Copyright © 2011-2022 走看看