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题解

P10245 Swimming Pool题解的更多相关文章

  1. Codeforces Round #331 (Div. 2) A. Wilbur and Swimming Pool 水题

    A. Wilbur and Swimming Pool Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  2. 【CodeForces 596A】E - 特别水的题5-Wilbur and Swimming Pool

    Description After making bad dives into swimming pools, Wilbur wants to build a swimming pool in the ...

  3. Codeforce#331 (Div. 2) A. Wilbur and Swimming Pool(谨以此题来纪念我的愚蠢)

    C time limit per test 1 second memory limit per test 256 megabytes input standard input output stand ...

  4. Codeforces Round #331 (Div. 2) _A. Wilbur and Swimming Pool

    A. Wilbur and Swimming Pool time limit per test 1 second memory limit per test 256 megabytes input s ...

  5. Codeforces--596A--Wilbur and Swimming Pool(数学)

     A - Wilbur and Swimming Pool Crawling in process... Crawling failed Time Limit:1000MS     Memory ...

  6. CodeForces 596A Wilbur and Swimming Pool

    水题. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> u ...

  7. Gym 100637F F. The Pool for Lucky Ones

    F. The Pool for Lucky Ones Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10 ...

  8. Gym 100637F F. The Pool for Lucky Ones 暴力

    F. The Pool for Lucky Ones Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10 ...

  9. HPU周赛题目解析

    A - Wilbur and Swimming Pool Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  10. UVALive 6915 Leveling Ground 倍增RMQ

    Leveling Ground 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid ...

随机推荐

  1. PaddleOCR在 windows下的webAPI部署方案

    很多小伙伴在使用OCR时都希望能过采用API的方式调用,这样就可以跨端跨平台了.本文将介绍一种基于python的PaddleOCR识方案.喜欢的可以关注公众号,获取更多内容. # 一. windows ...

  2. 莫烦pytorch学习记录

    感谢莫烦大神Pytorch B站视频:https://www.bilibili.com/video/av15997678?p=11 一个博主的笔记:https://blog.csdn.net/Will ...

  3. Xcode Debugger Extremely Slow , Xcode Swift调试器调试时极其慢(😡)

    一.Xcode 调试器 我的项目是国内某办公软件的iOS客户端, 代码量极其庞大, 编译一次至少30min以上. 关键是,如果你遇到问题的时候,调试下断点,需要至少5min才能断下来,走下一步,又重复 ...

  4. 初步搭建一个自己的对象存储服务---Minio

    docker安装 1.拉取镜像 docker pull minio/minio 2.启动镜像 docker run -p 9000:9000 -p 9001:9001 --name minio -d ...

  5. C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704

    C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704 环境说明: .NET Framework 4.6 的控制台程 ...

  6. Sass报错: Using / for division is deprecated

         原因是:当sass版本>= 1.33.0时,会不支持 / 这种语法:  解决方式一:      降低sass版本,将sass版本换成:"sass": "^ ...

  7. 只听过 Python 做爬虫?不瞒你说 Java 也很强

    网络爬虫技术,早在万维网诞生的时候,就已经出现了,今天我们就一起来揭开它神秘的面纱! 一.摘要 说起网络爬虫,相信大家都不陌生,又俗称网络机器人,指的是程序按照一定的规则,从互联网上抓取网页,然后从中 ...

  8. iOS:长图切割并转为动画gif——精灵表单sprite Sheet的转化

    iOS:长图切割并转为动画gif--精灵表单sprite Sheet的转化 通常的,iOS显示gif可以将文件转为NSData后再对其进行解析,通过CADisplayLink逐帧进行提取.播放,判断N ...

  9. 阿里云ecs自定义镜像并导出到OSS、并下载

    OSS是什么? 有个文章说得比较浅显清楚:什么是OSS?5分钟带你了解! - 知乎 (zhihu.com) 这里摘选核心内容: 白话文解释就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载. ...

  10. Nginx+Fail2ban 实现同一ip在一分钟内连续三次请求同一接口并响应成功时进行封禁

    1. 安装 Fail2Ban 和 Nginx 如果尚未安装 Fail2Ban 和 Nginx,可以使用以下命令进行安装: # CentOS默认的仓库中可能不包含Nginx,所以需要添加EPEL(Ext ...