zoukankan      html  css  js  c++  java
  • 兔八哥与猎人

    题目描述

    兔八哥躲在树林旁边的果园里,果园有m*n棵树,组成一个m行n列的矩阵,水平和垂直相邻的两棵树的距离为1,兔八哥在一棵树下。猎人背着猎枪走进了果园,他爬上一棵树,准备杀死兔八哥。如果猎人与兔八哥之间没有其它的果树,猎人就可以杀死兔八哥。现已知猎人和兔八哥的位置,判断兔子所在位置是否安全?

    输入

    第一行n,表示有n组数据(n<=100000),每组数据的第一行为两个正整数ax和ay,表示猎人位置,第二行为两个正整数bx by表示兔八哥位置(1<=ax,ay,bx,by<=100000000)

    输出

    共有n行,每行为”yes”或”no”
    样例输入:
    2
    1 1
    1 2
    1 1
    1 3
    样例输出:
    no
    yes

    思路

    其实这道题不用想太多,我一开始也以为是子弹可以上下左右东南西北8个方向设,其实不是。这种平的只要如果差的绝对值的最大公约数不是1,那么兔子处于危险状态

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int t,ax,ay,bx,by;
    inline int abs(int a){return a<0?-a:a;}//自己编写的求绝对值的函数
    int gcd(int x,int y){return y?(x%y?gcd(y,x%y):y):-1;}//求最大公约数的函数,注意在y==0的时候要返回错误值,否则会运算错误导致RE
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d%d%d",&ax,&ay,&bx,&by);
            if(gcd(abs(ax-bx),abs(ay-by))==1)printf("no
    ");//如果差的绝对值的最大公约数不是1,那么兔子处于危险状态
            else printf("yes
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    Linux 基础命令3 shell
    Django 的学习(2) 从adminuser到配置
    Linux巨好用的
    常见任务&基本工具 1 软件包管理
    java学习补全 1
    基础命令1
    java 5 绘图GUI
    Open GL与OpenGLES
    NDK 安装步骤
    转:为什么要有handler机制?
  • 原文地址:https://www.cnblogs.com/LJA001162/p/13370268.html
Copyright © 2011-2022 走看看