题解:逃避系统警察

本文介绍了一道与编程相关的题目,涉及C++编程。问题描述了GJY躲避系统警察的场景,警察和GJY位于一个矩阵森林中,若两者间无树遮挡,则警察可捕获GJY。任务是编写程序判断警察是否能抓住GJY。题目给出了输入输出格式及数据范围,并提示解题关键在于计算两点间距离的最大公因子。完整代码中包含gcd函数用于计算公因数。
摘要由CSDN通过智能技术生成

今天我来讲一道提高题:逃避系统警察
题目描述
由于GJY在与神犇的世纪大战中输了,现在她必须躲避系统警察对她的追捕,不然她一辈子都不可以与神犇交朋友了。

【题目描述】

GJY躲藏到了一个茂密的森林里,森林里是一个mn的矩阵,里面有mn棵树,也就是说在每一整数位置上都有一棵树,水平或垂直相邻的两棵树的距离为1。而GJY就在某一个果树下面。

系统警察可是会爬树的,他带着他的电子网爬上了某一棵树,准备来抓捕GJY。如果警察和GJY之间没有其他的树,那么警察就会看到GJY,就会对她实施抓捕。现在聪明的我们已经知道了警察和GJY的位置,要求你编写一个程序来判断警察是否可以抓到GJY。

输入
第一行为n,表示一共有n组数据,每组数据的第一行为两个正整数ax和ay,表示系统警察的位置,每组数据的第二行为两个正整数bx和by,表示GJY所在的位置。

输出
一共有n行,如果可以抓到GJY输出"no",否则输出"yes"。

样例
输入 复制
1
1 1
1 2
输出 复制
no
提示
【数据范围】

对于100%的数据,n≤100000,1≤ax,ay,bx,by≤100000000.

在这里插入图片描述

你可以对比2个图片看下,上图是两条边没有公共因子的情况,明显从下面的蓝色方格可以看到上面的(可以认为是从缝隙里面看到的),而下面的图片,他们的差值之间的最大公因子是3,所以从下面的方格连一条线,刚好交会在交点,说明从下面的方格这些树都在一个斜边上,所以毕竟看不到前面的方格。

所以,if语句写好了

if(a==0 && b>1){
   
			flg=1;//作者不走寻常路,抓到竟然要弄no
}
if(b==0 && a>1){
   
		flg=1;
}

细品后带入for循环

for(int i=1;i<=n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值