poj 3278(bfs)

Posted 发牌员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 3278(bfs)相关的知识,希望对你有一定的参考价值。

一条线上bfs搜就行

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
const int maxn=100000+100;
int n,k;
bool vis[maxn*2+100];
struct note
{
    int x;
    int cnt;
};
int bfs(int x,int y)
{
    queue<note> q;
    q.push(note{x,0});
    while(q.size())
    {
        note hh=q.front();
        q.pop();
         int mm=hh.cnt;
         int xx=hh.x;
         int aa;
         aa=xx+1;
        if(aa>=0&&aa<=2*maxn&&!vis[aa])
        {
            if(aa==y) return mm+1;
            vis[aa]=1;
            q.push(note{aa,mm+1});
        }
         aa=xx-1;
         if(aa>=0&&aa<=2*maxn&&!vis[aa])
        {
            if(aa==y) return mm+1;
            vis[aa]=1;
            q.push(note{aa,mm+1});
        }
         aa=xx*2;
        if(aa>=0&&aa<=2*maxn&&!vis[aa])
        {
            if(aa==y) return mm+1;
            vis[aa]=1;
            q.push(note{aa,mm+1});
        }
    }
    return -1;

}
int main()
{
      while(~scanf("%d%d",&n,&k))
      {  memset(vis,0,sizeof(vis));
          if(n==k) printf("0\n");
          else
          {
              int mm=bfs(n,k);
               printf("%d\n",mm);
          }
      }
    return 0;
}

 

以上是关于poj 3278(bfs)的主要内容,如果未能解决你的问题,请参考以下文章

POJ 3278 - Catch That Cow - [BFS]

POJ 3278 Catch That Cow(模板——BFS)

poj3278 bfs

超超超简单的bfs——POJ-3278

poj 3278 Catch That Cow bfs

POJ 3278 Catch That Cow(bfs)