zoukankan      html  css  js  c++  java
  • POJ-3278-Catch That Cow-广搜(BFS)

    题目链接:http://poj.org/problem?

    id=3278

    这是一道广搜的模板题,我就不解释了。直接看代码;

    #include<iostream>
    #include<string>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #include<map>
    #include<stack>
    #include<set>
    #include<vector>
    #include<algorithm>
    #define LL long long
    #define MAXN 100000
    using namespace std;
    int vis[MAXN+10],n,k;
    struct node
    {
        int x,s;
        node(int xx,int sx):x(xx),s(sx){ }      //  结构体函数,初始化。
    };
    void bfs(int n)
    {
        queue<node>q;
        q.push(node(n,0));      //  将起始点入队。
        vis[n]=1;
        while(!q.empty()){
            node next=q.front();
            q.pop();
            if(next.x==k){      //  说明找到了。。。

    printf("%d ",next.s); return; } if((next.x+1)<=MAXN&&!vis[next.x+1]) q.push(node(next.x+1,next.s+1)), vis[next.x+1]=1; // 三种情况,可行则分别入队;并标记。 if((next.x-1)>=0&&!vis[next.x-1]) q.push(node(next.x-1,next.s+1)), vis[next.x-1]=1; if((next.x*2)<=MAXN&&!vis[next.x*2]) q.push(node(next.x*2,next.s+1)), vis[next.x*2]=1; } return; } int main() { while(~scanf("%d%d",&n,&k)){ memset(vis,0,sizeof(vis)); bfs(n); } return 0; }


     

  • 相关阅读:
    2.搭建第一个http服务:三层架构
    1.基础入门
    MyISAM和InnoDB索引区别
    分区
    事务的四大特性
    事务
    String
    自己写native方法
    序列化和反序列化
    反射
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6941615.html
Copyright © 2011-2022 走看看