zoukankan      html  css  js  c++  java
  • HDU1577 (gcd)

    Description

    WisKey的眼镜有500多度,所以眼神不大好,而且他有个习惯,就是走路喜欢看着地(不是为了拣钱哦^_^),所以大家下次碰见他的时候最好主动打下招呼,呵呵.
    但是Rabbit总是喜欢扮神秘,一天WisKey去食堂排队等着买饭,突然收到一道短消息,是Rabbit发的,”呵呵,又看见你了,你没看 到我吧”.WisKey马上拉长脖子扫描食堂,可是就是看不到,再发短信问Rabbit在哪,Rabbit回信曰”我已经在寝室了”.WisKey无 语.... 假设食堂是个正方形,食堂中心坐标为(0,0),长度为2*L, WisKey保证在食堂内. 因为是吃饭高峰期,所以每个点上都站着人,当某些人处在同一直线上时就有可能被前面的人挡住. 聪明的ACMer请你帮帮WisKey,告诉他能不能看见Rabbit.

    Input
    输入L,sx,sy,px,py; L<=1000,sx,sy是WisKey的坐标,px,py是Rabbit的坐标. 以L=0为结束.

    Output
    对于每组输入数据,能看见输出”Yes”,看不见输出”No”. Rabbit不在食堂输出”Out Of Range”.

    Sample Input
    5 0 0 1 1
    5 0 0 2 0
    5 0 0 6 6
    5 0 0 -1 -1
    0
    Sample Output
    Yes
    No
    Out Of Range
    Yes

     

    其实这道题有无那个图都是一样的,有了的话的却给了我们一个很直观的印象,但反倒影响了我们的思维。当时我就在图上一顿找玄机,结果比赛结束了也没有过,还记得我当时的错误想法是看看座标间能不能整除。听了题解后才明白,哦原来是gcd啊!!!!用gcd的合理性也很明显,若gcd(abs(px-sx),abs(py-sy))==1,就说两点连线上再也没有其他的坐标了。一开始补题的的时候,我想到了一组样例 6 2 3 3 6 根据这组样例 我的想法是gcd(px,sx)==1 || gcd(py,sy)==1 对这组样例来说倒是满足,带着不安试一试吧!交上去WA了。想了想,想到了5 2 1 4 5 对横纵坐标分别求gcd也符合了判断条件,但把两个点连起来发现,直线穿过了(2,2)这个点。再想了想,于是便有了解。*************************(补充一句 我刚开始以为一个非0整数不能和0求gcd于是还加了个特判的条件,但又写了个gcd测试以后发现0与非0整数求gcd得那个非0整数,当然了不加这特判条件也是可以过的)。

     

    有什么不合理的地方 请各位大佬为在下指出~~~~~

    #include<bits/stdc++.h>
    
    int abs(int x){
    	return x>0?x:-x;	
    }
    int gcd(int a,int b){
    	return b==0?a:gcd(b,a%b);
    }
    
    int main(){
    	int L,sx,sy,px,py;
    	while(scanf("%d",&L)==1&&L){
    		scanf("%d %d %d %d",&sx,&sy,&px,&py);
    		if(abs(px)>L||abs(py)>L){
    			printf("Out Of Range\n");
    			continue;
    		}
    		if(abs(px-sx)==1&&abs(py-sy)==1){
    			printf("Yes\n");
    		}
    		else if((gcd(abs(px-sx),abs(py-sy))==1)&&abs(px-sx)!=0&&abs(py-sy)!=0){
    			printf("Yes\n");
    		}
    		else{
    			printf("No\n");
    		}	
    	} 
    	return 0;
    }
    

     

  • 相关阅读:
    洛谷 P2634 BZOJ 2152 【模板】点分治(聪聪可可)
    洛谷 P3819 松江1843路
    洛谷 P1005 矩阵取数游戏
    洛谷 P2712 摄像头
    洛谷 P2774 方格取数问题
    洛谷 P3369 BZOJ 3224 【模板】普通平衡树(Treap/SBT)
    洛谷 P2805 BZOJ 1565 植物大战僵尸
    洛谷 P2312 解方程
    洛谷 P3355 骑士共存问题
    洛谷 P2762 太空飞行计划问题
  • 原文地址:https://www.cnblogs.com/gjy963478650/p/7243508.html
Copyright © 2011-2022 走看看