zoukankan      html  css  js  c++  java
  • Virtual Judge POJ 3278 Catch That Cow

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<queue>
    const int  maxn =100010;
    using namespace std;
    int n,m;
    struct data {
        int x,step;
    } p;
    int vis[100005];
    void bfs() {
        memset(vis,0,sizeof(vis));  //重置
        queue<data>q;  //队列
        p.x=n;  //起点
        p.step=0;  //起点到起点的距离
        q.push(p);  //压入队列
        vis[n]=1;  //走过
        while(!q.empty()) {
            p=q.front();
            q.pop();
            if(p.x==m) {
                printf("%d
    ",p.step);  //直接输出
                return ;
            }
            data k=p;
            if(k.x+1<maxn&&!vis[k.x+1]) {  //尝试前进一步
                k.x++;  //如果可以,加坐标
                vis[k.x]=1;  //标记走过
                k.step++;  //  加步数
                q.push(k); //新的位置压入队列
    
            }
            k=p;
            if(k.x-1>=0&&!vis[k.x-1]) { //尝试后退一步
                k.x--;
                vis[k.x]=1;
                k.step++;
                q.push(k);
            }
            k=p;
            if(k.x*2<maxn&&!vis[k.x*2]) { //尝试传送
                k.x*=2;
                vis[k.x]=1;
                k.step++;
                q.push(k);
            }
        }
    }
    int main() {
        scanf("%d%d",&n,&m);
        bfs();
        return 0;
    }
  • 相关阅读:
    5285: [Hnoi2018]寻宝游戏
    CF 1117 E. Decypher the String
    4515: [Sdoi2016]游戏
    CF 1051 G. Distinctification
    4820: [Sdoi2017]硬币游戏
    HNOI2019游记
    最近公共祖先(LCT)
    [WC2006]水管局长(LCT)
    P4178 Tree(点分治)
    二维凸包
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11746394.html
Copyright © 2011-2022 走看看