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

    题目背景

    《爱与愁的故事第三弹·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

    从马开始所在的坐标开始搜索,搜索这个点到每一个点的最短步数。最后输出1,1这个坐标点的最短步数就OK了。

    而且如果我们自己在图上推如何去求最短步数便可得(推导过程略,自力更生丰衣足食)

    当前的结点的父节点+1的值,因此便可以直接使用BFS进行移动,然后把12个方向分别分成这一行的当前节点的12的子节点(如果12个方向符合不超出边界且没走过的情况),然后依次向下,直到所有的都过一遍。

    #include<cstdio>
    #include<cstring>
    int dx[12]={2,-2,2,-2,1,1,-1,-1,2,2,-2,-2};
    
    int dy[12]={2,2,-2,-2,2,-2,2,-2,1,-1,1,-1};
    
    int b[1001][1001],que[100001][3],a[1001][1001];
    
    int BFS(int x,int y){
        int tail=1,head=0;
        que[tail][0]=x;
        que[tail][1]=y;
        b[x][y]=1;
        do{
            head++;
            for (int i=0;i<12;i++){
                int x1=que[head][0]+dx[i];
                int y1=que[head][1]+dy[i];
                if (x1>=1 && x1<=50 && y1<=50 & y1>=1 && b[x1][y1]==0){
                    tail++; 
                    que[tail][0]=x1;
                    que[tail][1]=y1;
                    b[x1][y1]=1;
                    a[x1][y1]=a[que[head][0]][que[head][1]]+1;
                }
            }
        }while (head<tail);
        return a[1][1];
    }
    
    int main(){
        int x1,y1,i,j;
        scanf("%d%d",&x1,&y1);
        printf("%d
    ",BFS(x1,y1));
        memset(b,0,sizeof(b)); 
        memset(que,0,sizeof(que));
        memset(a,0,sizeof(a));
        scanf("%d%d",&x1,&y1);
        printf("%d
    ",BFS(x1,y1));
        return 0;
    }
  • 相关阅读:
    dajngo ORM查询中select_related的作用,博客主题的定制,从数据库中按照年月筛选时间
    Django数据查询中对字段进行排序
    Django验证码实现
    django登录注册验证之密码包含特殊字符,确认密码一致实现,Form验证
    django模板传入参数的处理方式与反向生成url
    在django中使用循环与条件语言
    django的模板的继承与导入
    sublime3故障收集emmet无法安装pyv8
    [SQL SERVER系列]之嵌套子查询和相关子查询
    [SQL SERVER系列]读书笔记之SQL注入漏洞和SQL调优
  • 原文地址:https://www.cnblogs.com/hrj1/p/11191904.html
Copyright © 2011-2022 走看看