• 螺旋队列和hiho1525逃离迷宫3


    我是真调不出错误了!

    hiho1525逃离迷宫3

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    //中间变量为长整形,so x,y变量一定要设置为长整型
    long long cal(long long x,long long y)
    {
        if (x<=y && y<=-x && x<=0)
            return (4*x*x-3*x+y)%26;
        else if (-y+1<=x && x<=y-1 && y>0)
            return (4*y*y-3*y+x)%26;
        else if (-x+1<=y && y<=x && x>0)
            return (4*x*x-x-y)%26;
        else if (y+1<=x && x<=-y && y<0)
            return (4*y*y-y-x)%26;
    }
    
    int main()
    {
        long n,i,k;
        long long dx[4]={-1,0,0,1},dy[4]={0,-1,1,0};
        long long x,y,e,s[4];
        scanf("%ld",&n);
        for (k=1;k<=n;k++)
        {
            scanf("%lld%lld",&x,&y);
            //任意两个字母必存在相邻的两个位置
            //(0,0)[a]->( , )[a]->( , )[b]->(x,y)[b],三步必能实现
            //所以寻找一步、两步(小于三步)的操作
    
            //a=b:一步
            //a<>b:大于一步
            //(0,0)[a]->( , )[a]->(x,y)[b] 相邻
            //(0,0)[a]->( , )[b]->(x,y)[b] 相邻
            //寻找一步上下左右操作,(0,0)能否到达字母为b的格
            //寻找一步上下左右操作,(x,y)能否到达字母为a的格
    
            if (x==0 && y==0)
            {
                printf("0
    ");
                continue;
            }
            e=cal(x,y);
            for (i=0;i<3;i++)
                s[i]=cal(x+dx[i],y+dy[i]);
    
            if ((x==0 && y==1) || (x==0 && y==-1) || (x==1 && y==0) || (x==-1 && y==0))
                printf("1
    ");
            else if (e==0)
                printf("1
    ");
            else if ((x==0 && y==2) || (x==0 && y==-2) || (x==-2 && y==0) || (x==2 && y==0))
                printf("2
    ");
            else if ((x==1 && y==1) || (x==1 && y==-1) || (x==-1 && y==1) || (x==-1 && y==-1))
                printf("2
    ");
            //(0,0)->相邻[B D F H]->(x,y)
            else if (e==1 || e==3 || e==5 || e==7)
                printf("2
    ");
            //(x,y)->相邻[0]->(0,0)
            else if (s[0]==0 || s[1]==0 || s[2]==0 || s[3]==0)
                printf("2
    ");
            else
                printf("3
    ");
        }
        return 0;
    }
  • 相关阅读:
    C# log4net
    C# compare different Encoding pattern between UTF8 and UTF32 based on Md5
    C# extract img url from web content then download the img
    C# while loop Running until user press key
    C# GZip Compress DeCompress
    C# get md5 from bytes
    transition结合:after,:before实现动画
    http跟https的区别
    window,getComputedStyle,letter-spacing
    inline-block,vertical-align:middle
  • 原文地址:https://www.cnblogs.com/cmyg/p/7239047.html
Copyright © 2020-2023  润新知