标签:直接 mamicode 垃圾 triangle code 包含 个数 顶点 bsp
题意:
给出一个边长为a的正方形,其左下角坐标为(0,0),右上角坐标为(a,a)。
此外,再给出一个边长为b的小正方形,以及它的左下角坐标(x,y),其右上角。
坐标为(x+b,y+b),并且保证小正方形一定在大正方形内(有可能会与大正方形的边重合,但不会超出大正方形)。
问是否存在一个在顶点都在大正方形边上的三角形,满足三角形一条边在包含小正方形的一条边(小正方形的一条边在三角形的一条边上),并且三角形包含小正方形(小正方形在三角形内部,正方形的顶点或者边可以与三角形边重合)。
若存在,输出‘yes’,否则输出‘no‘。
输入:
输入的第一行包含一个整数T,代表T组测试数据。接下来T行,每行给出四个数字a,b,x,y
分别代表大正方形的边长,小正方形的边长以及小正方形左下角的坐标。
输入保证
T<=100000;
1<=b<=a<=10000;
0<=x,y<=a-b
输出:
对于每一组测试数据,输出一行。’yes‘代表存在该三角形,‘no‘代表不存在。
样例输入:
4
4 1 1 2
3 1 1 2
3 1 0 0
3 2 1 1
样例输出:
yes
yes
yes
no
解释说明:
样例1: 接下来的图片展示了一种可能的构造三角形的方案:
正方形A是P1 P2 P3 P4, 正方形B 是Q1 Q2 Q3 Q4以及构造的三角形T是T1 T2 T3.
样例2: 接下来的图片展示了一种可能的构造三角形的方案:
正方形A是P1 P2 P3 P4, 正方形B 是Q1 Q2 Q3 Q4以及构造的三角形T是T1 T2 T3.
(这里不得不提一句Codechef的中文翻译是真的很垃圾,之后为什么VJ不能把图片爬下来?)
一开始看到这个题目时,我是直接想当小正方形的面积大于正方形面积的1/4时直接判断no,之后其他都应该是yes才对。
之后就莽了一发,WA声一片。还是我想得太简单了。以下的情况就是我上面思路的反例。
(此时的小正方形面积大正方形的1/4但是是无法构造三角形的)
所以我们就能很自然地想到能否构造三角形的应该是取决于正方形的位置以及其面积的。那么我们就从一般的三角形出发。
【Codechef】A Triangle and Two Squares-Problem Code: SQRTRI
标签:直接 mamicode 垃圾 triangle code 包含 个数 顶点 bsp
原文地址:https://www.cnblogs.com/Vikyanite/p/12179183.html