首页 > 其他分享 >P10245 Swimming Pool题解

P10245 Swimming Pool题解

时间:2024-04-06 18:15:15浏览次数:24  
标签:AB BC int 题解 P10245 rd abs && Pool

P10245 Swimming Pool

题意

给你四条边 \(abcd\),求这四条边是否可以组成梯形。

思路

这显然是一道简单的普通数学题。

判断是否能构成梯形只需看四条边是否能满足,上底减下底的绝对值小于两腰之和且大于两腰之差。

证明过程

如图,\(AB=a\),\(BC=b\),\(CD=c\),\(AD=d\)。

过点 \(D\) 作 \(AB\) 的平行线交 \(BC\) 于点 \(E\)。

若四边形 \(ABCD\) 为梯形,则 \(AD\) 平行于 \(BE\),

又 \(AB\) 平行 \(DE\),

所以四边形 \(ABED\) 是平行四边形,

则 \(BE=AD=d\)。

因为 \(BC=b\),

所以 \(EC=BC-BE=b-d\)。

由上文知四边形 \(ABED\) 是平行四边形,

则 \(DE=AB=a\)。

于是在三角形 \(CDE\) 中。

根据三角形的三边关系可知:

\(CE<DE+DC\) 并且 \(CE>DC-DE\)。

即 \(b-a>c-d\) 并且 \(b-a<c+d\)。

注意事项

  • 因为题目中有表明,所以只有 \(ac\) 和 \(bd\) 是对边。
  • 因为 \(a-b\) 有几率出现负数,所以用绝对值函数 abs 来做。

代码

#include <bits/stdc++.h>
using namespace std;
inline int rd(){
	int f=1,s=0;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
	while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
	return f*s;
}
inline void print(int x){
	if(x<0){putchar('-');print(-x);return;}
	if(x>9) print(x/10);
	putchar(x%10+'0');
}
int t,a,b,c,d;
int main(){    
    t=rd();
    while(t--){
    	a=rd();b=rd();c=rd();d=rd();
    	bool f=0,k=0;
			if(a!=c&&b+d>abs(a-c)&&abs(b-d)<abs(a-c))f=1; 
			else if(b!=d&&a+c>abs(b-d)&&abs(a-c)<abs(b-d))f=1;
		if(f==1)cout<<"yes\n";
		else cout<<"no\n";
	}
    return 0; 
}
```P10245 Swimming Pool题解

标签:AB,BC,int,题解,P10245,rd,abs,&&,Pool
From: https://www.cnblogs.com/AUBSwords/p/18117689

相关文章

  • P10244 String Minimization 题解
    P10244StringMinimization题意给你四个长度为\(n\)的字符串,分别是\(abcd\)。你可以选择一个\(i\)然后交换\(a[i]\)和\(c[i]\),并交换\(b[i]\)和\(d[i]\)。求在\(a\)的字典序尽量小的前提下,\(b\)字典序最小是什么。思路本题并不难。只需要在\(a[i]>c[i]\)......
  • CF1929B Sasha and the Drawing 题解
    CF1929B题意给定一个\(n\timesn\)的正方形,已知正方形最多有\(4\timesn-2\)条对角线,要求要有至少\(k\)条对角线经过至少一块黑色方格,求至少要将几条对角线涂成黑色。分析分类讨论:当\(k<=4\timesn-4\)时,就只需要在上下两侧图就行,所以答案是\([\frac{k}{2}]\)。当......
  • CF301B Yaroslav and Time 题解
    CF301B这不最短路的板子题吗?思路用\(ak\)代表走到第\(k\)点时的可恢复单位时间的值。\(i\)到\(j\)的距离是\(\left(\left|xi-xj\right|+\left|yi-yj\right|\right)\timesd-ak\)。再打一下最短路代码,建议Floyd,因为短。ACCode#include<bits/stdc......
  • CF30D King's Problem? 题解
    CF30D题意有\(n+1\)个点,其中的\(n\)个点在数轴上。求以点\(k\)为起点走过所有点的最短距离,允许重复。思路有两种情况:\(k\)在数轴上(如图1)。\(k\)在第\(n+1\)个点上(如图2)。图1:图2:像第一种情况:一定存在数轴上某点\(k\),使得人先走遍\(1\simk\),回来,再走遍......
  • CF1915B Not Quite Latin Square 题解
    CF1915B题意给出一个\(3\)行\(3\)列的字符矩形,其中每行都有字符ABC各一个组成,现有一个字符未知,求出未知字符。思路就是说每个字符都应该出现\(3\)次,所以我们只要找到出现两次的字符即可。ACCode#include<bits/stdc++.h>usingnamespacestd;intt;chara[10][10......
  • CF916C 题解
    CF916C题解思路思考发现,如果我们让很多边的边权变得非常大,而故意留下\(1\)到\(n\)的某一条路径,使整条路径之和甚至还没有剩下一条边的权值大,这条路径显然就是最短路了。更重要的是,这样构造的结果,这条路径同时还是整张图的最小生成树。这样我们只需要找一个\(100000\)......
  • P6680 [CCO2019] Marshmallow Molecules 题解
    P6680题意一个\(n\)点\(m\)边的图,图无重边,无自环。满足这样一条性质:如果三边互不相等,则三边可以构成三角形。思路思路简单,用集合的思想来做。引用一下K0stlin大佬的性质:题目中的操作等价于将一个点大于某个儿子的儿子们赋给这个儿子(这里的儿子表示这个点有出边连向的......
  • CF1883B Chemistry 题解
    原题传送门思路:如"aba","abba"这样的回文字符串,每个字符的出现次数有以下两种情况:1:全部是偶数(abba)2:只有一个为奇数(aba)于是只要字符出现个数为奇数的个数小于等于k+1即可否则无解ACcode:#include<bits/stdc++.h>usingnamespacestd;intt,n,k,number[50];strings;......
  • CF895C Square Subsets 题解
    看到\(a_i\le70\)后,发现\(n\)啥用没有,因为只需要枚举\(1-70\)选几个即可。看到求完全平方数后,想到分解质因数,由于\(a_i\le70\),所以只有\(19\)个质数,可以进行状压dp。设\(dp_{i,j}\)表示枚举到\(i\),状态为\(j\)的方案数,便有:\[dp_{i,j}=dp_{i-1,j}+dp_{i-1,j\o......
  • 题解:AT_xmascon21_b Bad Mood
    AT_xmascon21_bBadMood题意给定你一个\(n\timesm\)的矩形。以一条对角线为基础上,制作一个无向图,该图的顶点对应于格子的共有\((m+1)\times(n+1)\)个顶点,画上的对角线对应于图的边。这种方式能形成的连通分量的数量为得分。求最小得分和最大得分。思路最小得分是好......