zoukankan      html  css  js  c++  java
  • 洛谷 P1747 好奇怪的游戏

    题目背景

    《爱与愁的故事第三弹·shopping》娱乐章。

    调调口味来道水题。

    题目描述

    爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上。它们得从点x1,y1和x2,y2走到1,1。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么?

    输入输出格式

    输入格式:

     

    第1行:两个整数x1,y1

    第2行:两个整数x2,y2

     

    输出格式:

     

    第1行:黑马到1,1的距离

    第2行:白马到1,1的距离

     

    输入输出样例

    输入样例#1: 复制
    12 16
    18 10
    输出样例#1: 复制
    8 
    9

    说明

    100%数据:x1,y1,x2,y2<=20

    思路:搜索。

    #include<queue>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int x1,x2,y1,y2;
    int vis[1010][1010];
    int ans=0x7f7f7f7f;
    int dx[12]={2,2,2,2,1,1,-1,-1,-2,-2,-2,-2};
    int dy[12]={-2,-1,1,2,-2,2,-2,2,-1,-2,1,2};
    struct nond{
        int x,y,step;
    };
    void bfs(int x,int y){
        queue<nond>que;
        nond tmp;tmp.x=x;tmp.y=y;tmp.step=0;
        que.push(tmp);
        while(!que.empty()){
            nond now=que.front();
            que.pop();
            for(int i=0;i<12;i++){
                nond c;
                c.x=now.x+dx[i];
                c.y=now.y+dy[i];c.step=now.step+1;
                if(c.x>=1&&c.y>=1&&c.x<=50&&c.y<=50&&!vis[c.x][c.y]){
                    vis[c.x][c.y]=now.step+1;
                    que.push(c);
                }
            }
            if(vis[1][1])
                break;
        }
    }
    int main(){
        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);vis[x1][y1]=1;vis[x2][y2]=1;
        bfs(x1,y1);cout<<vis[1][1]<<endl;memset(vis,0,sizeof(vis));vis[x2][y2]=1;
        bfs(x2,y2);cout<<vis[1][1];
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    ubuntu 进入临时客户会话页面 转入用户自己页面
    python hmac 加密
    docker 学习
    python try except 捕捉错误得到错误的时候的值
    python2 python3 m2crypto 安装(rsa 私钥文件加密)
    python3 requests 模块 json参数和data参数区别
    爬虫-鸡哥给大家的福利
    常用模块2
    python入门到放弃之 面向对象vs面向过程
    python放弃之 模块和包
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8030051.html
Copyright © 2011-2022 走看看