• poj 3278 Catch That Cow (广搜,简单)


    题目

    以前做过,所以现在觉得很简单,需要剪枝,注意广搜的特性;

    另外题目中,当人在牛的前方时,人只能后退。

    #define  _CRT_SECURE_NO_WARNINGS
    //这是非一般的最短路,所以广搜到的最短的路不一定是所要的路线
    //所以应该把所有的路径都搜索出来,找到最短的转折数,看他是不是不大于2
    //我是 用边搜索边更新当前路径的最小转弯数 来写的
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    #include<algorithm>
    #include<queue>
    using namespace std;
    #define MAXN 100010
    bool vis[MAXN];
    int s,t;
    
    struct tt
    {
        int x,step;
    };
    
    int bfs()
    {
        tt front,rear,temp;
        queue<tt>q;
        while(!q.empty())
            q.pop();
        memset(vis,false,sizeof(vis));
        front.x=s;front.step=0;
        q.push(front);
        vis[s]=true;
        while(!q.empty())
        {
            temp=q.front();
            if(temp.x==t)
                return temp.step;
            q.pop();
            rear.step=temp.step+1;
            
            if(temp.x>t)
            {
                rear.x=temp.x-1;
                if(rear.x>=0&&rear.x<=MAXN&&!vis[rear.x])
                    q.push(rear),vis[rear.x]=true;
            }
            else
            {
                rear.x=temp.x+1;
                if(rear.x>=0&&rear.x<=MAXN&&!vis[rear.x])
                    q.push(rear),vis[rear.x]=true;
    
                rear.x=temp.x-1;
                if(rear.x>=0&&rear.x<=MAXN&&!vis[rear.x])
                    q.push(rear),vis[rear.x]=true;
    
                rear.x=temp.x*2;
                if(rear.x>=0&&rear.x<=MAXN&&!vis[rear.x])
                {
                    q.push(rear);
                    vis[rear.x]=true;
                }
            }
        }
        return 0;
    }
    
    int main()
    {
        while(scanf("%d%d",&s,&t)!=EOF)
        {
            if(s>t)
                printf("%d
    ",s-t);
            else
            {
                printf("%d
    ",bfs());
            }
        }
        return 0;
    }
    View Code
    一道又一道,好高兴!
  • 相关阅读:
    fopen flock fclose 文件用法
    thinkphp并发 阻塞模式与非阻塞模式
    thinkphp3.2 控制器导入模型
    thinkphp3.2 session时间周期无效
    UWP滑动后退
    旺信UWP公测邀请
    旺信UWP倒计时
    UWP应用开发系列视频教程简介
    新浪微博UWP UI意见征求
    淘宝UWP--自定义图片缓存
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3548755.html
Copyright © 2020-2023  润新知