【Codechef】A Triangle and Two Squares-Problem Code: SQRTRI

题意:

给出一个边长为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但是是无法构造三角形的)

所以我们就能很自然地想到能否构造三角形的应该是取决于正方形的位置以及其面积的。那么我们就从一般的三角形出发。

原文地址:https://www.cnblogs.com/Vikyanite/p/12179183.html

时间: 2024-10-07 18:41:50

【Codechef】A Triangle and Two Squares-Problem Code: SQRTRI的相关文章

【CodeChef】Turbo Sort

题目链接:Turbo Sort 用java自带O(NlogN)的排序就可以,java要特别注意输入输出.输入用BufferedReader,输出用printWriter.printWriter的速度比System.out快很多,参考StackOverflow. 代码: 1 import java.io.BufferedOutputStream; 2 import java.io.BufferedReader; 3 import java.io.InputStreamReader; 4 impor

【CodeChef】Factorial(n!末尾0的个数)

The most important part of a GSM network is so called Base Transceiver Station (BTS). These transceivers form the areas called cells (this term gave the name to the cellular phone) and every phone connects to the BTS with the strongest signal (in a l

【动态规划】The Triangle

问题 E: [动态规划]The Triangle 时间限制: 1 Sec  内存限制: 128 MB提交: 24  解决: 24[提交][状态][讨论版] 题目描述 73 88 1 02 7 4 44 5 2 6 5(Figure 1) Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the t

【CodeChef】Small factorials(BigInteger笔记)

You are asked to calculate factorials of some small positive integers. Input An integer t, 1<=t<=100, denoting the number of testcases, followed by t lines, each containing a single integer n, 1<=n<=100. Output For each integer n given at inpu

【CodeChef】Enormous Input Test

The purpose of this problem is to verify whether the method you are using to read input data is sufficiently fast to handle problems branded with the enormous Input/Output warning. You are expected to be able to process at least 2.5MB of input data p

【CodeChef】Querying on a Grid(分治,最短路)

[CodeChef]Querying on a Grid(分治,最短路) 题面 Vjudge CodeChef 题解 考虑分治处理这个问题,每次取一个\(mid\),对于\(mid\)上的三个点构建最短路径树(因为保证了最短路唯一所以是树). 如果两点之间的最短路径跨越了\(mid\),那么必定有\(dis[u]+dis[v]\)的和就是最短路径长度. 那么我们在分治过程中考虑每一个\(mid\),取其中\(dis[u]+dis[v]\)的最小值,这样子就很容易可以找到最短路径长度. 然后知道了

【HDOJ】3509 Buge&#39;s Fibonacci Number Problem

快速矩阵幂,系数矩阵由多个二项分布组成.第1列是(0,(a+b)^k)第2列是(0,(a+b)^(k-1),0)第3列是(0,(a+b)^(k-2),0,0)以此类推. 1 /* 3509 */ 2 #include <iostream> 3 #include <string> 4 #include <map> 5 #include <queue> 6 #include <set> 7 #include <stack> 8 #incl

【multiset】hdu 5349 MZL&#39;s simple problem

[multiset]hdu 5349 MZL's simple problem 题目链接:hdu 5349 MZL's simple problem 题目大意 n次操作,插入元素.删除最小元素.查询最大元素并输出. C++STL的multiset的使用 set--多元集合(元素不可重复),multiset--可重复元素的多元集合 多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象.(具体用法请参照set容器) set和multiset内部是以平衡二叉树实现的: 从内部数据结

矩阵十题【八】 HDU 1715 A Simple Math Problem

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 题目大意: If x < 10   ,则  f(x) = x. If x >= 10 ,则  f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + -- + a9 * f(x-10); 给出k,m和a0~a9,求f(k)%m,  k<2*10^9 , m < 10^5 这是一个递推式,故可以用矩阵乘法来求 和上题类似,具体思路过程见上题