HDU 2438 Turn the corner(三分查找)

简介: 托一个学弟的福,学了一下他的最简便三分写法,然后找了一道三分的题验证了下,AC了一题,写法确实方便,还是我太弱了,漫漫AC路!各路大神,以后你们有啥好的简便写法可以在博客下方留个言或私信我,谢谢了! Turn the corner Time Limit: 3000/1000 MS (Java/O...

托一个学弟的福,学了一下他的最简便三分写法,然后找了一道三分的题验证了下,AC了一题,写法确实方便,还是我太弱了,漫漫AC路!各路大神,以后你们有啥好的简便写法可以在博客下方留个言或私信我,谢谢了!

Turn the corner

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3196    Accepted Submission(s): 1302

Problem Description
Mr. West bought a new car! So he is travelling around the city.
One day he comes to a vertical corner. The street he is currently in has a width x, the street he wants to turn to has a width y. The car has a length l and a width d.
Can Mr. West go across the corner?
 
Input
Every line has four real numbers, x, y, l and w. Proceed to the end of file.
 
Output
If he can go across the corner, print "yes". Print "no" otherwise.
 
Sample Input
10 6 13.5 4
10 6 14.5 4
Sample Output
yes
no
Source
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2438
题意:
         给出街道在x轴的宽度X,y轴的宽度Y,还有车的长l和宽w,判断是否能够转弯成功。
 
题解:
        盗网上大牛一张图,画的很详细
 
      尽可能让车贴着外面的墙璧转弯,也就是图中的x轴和y轴,此时红线的方程就是图中的方程,此时p点的位置就是让y=X时解得的x值,要保证p点在Y内,也就是-x<y,假若在转弯的所有角度中都满足这个条件,那么就能转弯,分析得,-x先增大后减小,所以用三分求最大-x值。
 
下面给出AC代码:
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 double x,y,l,w;
 4 const double eps=1e-6;
 5 const double pi=acos(-1.0);
 6 double solve(double angle)
 7 {
 8     return (-x+l*sin(angle)+w/cos(angle))/tan(angle);
 9 }
10 int main()
11 {
12     while(scanf("%lf%lf%lf%lf",&x,&y,&l,&w)!=EOF)
13     {
14         double ll=0,rr=pi/2,midx,midy;
15         while(rr-ll>eps)
16         {
17             midx=(ll+ll+rr)/3;
18             midy=(ll+rr+rr)/3;
19             if(solve(midx)>solve(midy))
20             rr=midy;
21             else ll=midx;
22         }
23         if(solve(ll)<y)
24             printf("yes\n");
25         else printf("no\n");
26     }
27     return 0;
28 }

 

目录
相关文章
|
人工智能 自然语言处理 安全
国产算力平台的磨砺与革新:助力国内AI走向更高更远
近几年技术圈由人工智能的快速发展,引起来了变革和创新,虽然国外的算力一直是走在最前沿,但是国产算力平台在推动我国AI产业中发挥着重要作用,扮演着重要角色,但要助力国内AI走得更高更远,国产算力平台还需要经历磨砺和革新。那么本文就来分享和讨论一下国产算力平台所需的磨砺和革新,以及这样的平台在国产算力土壤之上能孕育出的AI创新之花。
487 1
国产算力平台的磨砺与革新:助力国内AI走向更高更远
AutoJs4.1.0实战教程---抖音极速版
AutoJs4.1.0实战教程---抖音极速版
696 0
|
SQL 存储 Java
Hive【Hive(八)自定义函数】
Hive【Hive(八)自定义函数】
|
存储 数据挖掘 数据处理
【Python DataFrame 专栏】优化 DataFrame 性能:提升数据处理效率的秘诀
【5月更文挑战第19天】优化 Python DataFrame 性能的关键点包括:选择合适的数据类型以节省内存,避免重复计算,利用向量化操作,考虑使用 `iterrows` 或 `itertuples` 迭代,优化索引以及借助 `Cython` 或 `Numba` 加速代码执行。通过这些策略,能提升数据处理效率,应对大规模数据挑战。
682 2
【Python DataFrame 专栏】优化 DataFrame 性能:提升数据处理效率的秘诀
|
存储 算法 安全
|
JavaScript
type和interface的异同?
type和interface的异同?
646 0
|
设计模式 缓存 JSON
一种新的流:为Java加入生成器(Generator)特性
一种全新的设计模式,数学美感与工程实用价值兼备,且不限编程语言。本文将以Java为样例,从无到有实现出完整的流式API,引入生成器特性,并介绍诸多应用场景。
13762 10
一种新的流:为Java加入生成器(Generator)特性
|
存储 运维 监控
亿级异构任务调度框架设计与实践
阿里云日志服务作为云原生可观测与分析平台。提供了一站式的数据采集、加工、查询分析、可视化、告警、消费与投递等功能。全面提升用户的研发、运维、运营、安全场景的数字化能力。日志服务平台作为可观测性平台提供了数据导入、数据加工、聚集加工、告警、智能巡检、导出等功能,这些功能在日志服务被称为任务,并且具有大规模的应用,接下来主要介绍下这些任务的调度框架的设计与实践。
亿级异构任务调度框架设计与实践
|
人工智能 Kubernetes 大数据
探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利
Kubernetes以容器为基础,将应用程序和其依赖项封装在容器中。这使得大数据处理和AI模型的部署更加一致和可移植,可以在不同的环境中轻松部署,包括开发、测试和生产环境。
657 0
|
存储 API 数据安全/隐私保护
快照备份与恢复
本场景主要介绍了如何通过快照功能将 Elasticsearch 中的数据备份到对象存储上,以及如何使用快照对数据进行恢复。