hdu Turn the corner

简介:

Turn the corner

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 151 Accepted Submission(s): 61
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


汽车拐弯问题,给定X, Y, l, d判断是否能够拐弯。首先当X或者Y小于d,那么一定不能。
其次我们发现随着角度θ的增大,最大高度h先增长后减小,即为凸性函数,可以用三分法来求解。

这里的Calc函数需要比较繁琐的推倒公式:
s = l * cos(θ) + w * sin(θ) - x;
h = s * tan(θ) + w * cos(θ);
其中s为汽车最右边的点离拐角的水平距离, h为里拐点最高的距离, θ范围从0到90。

3分搜索法

复制代码
#include <iostream>
#include
<stdio.h>
#include
<math.h>
using namespace std;
double pi = acos(-1.0);
double x,y,l,w,s,h;
double cal(double a)
{
s
= l*cos(a)+w*sin(a)-x;
h
= s*tan(a)+w*cos(a);
return h;
}
int main()
{
double left,right,mid,midmid;
while(scanf("%lf%lf%lf%lf",&x,&y,&l,&w)!=EOF)
{
left
= 0.0;
right
= pi/2;
while(fabs(right-left)>1e-8)
{
mid
= (left+right)/2;
midmid
= (mid+right)/2;
if(cal(mid)>=cal(midmid))right = midmid;
else left = mid;
}
if(cal(mid)<=y)printf("yes\n");
else printf("no\n");
}
return 0;
}
复制代码
本文转自NewPanderKing51CTO博客,原文链接: http://www.cnblogs.com/newpanderking/archive/2011/08/25/2153773.html  ,如需转载请自行联系原作者
相关文章
|
算法 开发者
代码与哲学的交织:探索软件开发中的哲理
【10月更文挑战第17天】 在数字化时代,软件开发不仅仅是技术的堆砌,更是智慧与哲学的碰撞。本文通过深入浅出的方式,探讨了编程中蕴含的哲学思想,如迭代思维、模块化设计以及错误处理的艺术。我们将一起思考如何将这些哲学理念融入日常开发,以提升我们的技术深度和广度,让代码不仅是冰冷的逻辑,而是充满智慧的艺术品。
261 5
|
Android开发 UED
|
存储 监控 otter
跨地域场景下,如何解决分布式系统的一致性?
跨地域,即常说的“异地双活”、“异地多活”中的异地概念。在业务发展较快的情况下,我们的服务便需要跨地域部署,以满足各区域就近访问和跨地域容灾等需求,在此过程中,不可避免会涉及到跨地域下的分布式一致性问题。由跨地域所带来的网络延迟问题,以及由于网络延迟而衍生的一系列问题,对于设计和构建一个跨地域分布式一致性系统是极大的挑战,业界有很多针对此问题的解决方案,都希望能解决跨地域场景下的一致性问题。
跨地域场景下,如何解决分布式系统的一致性?
|
安全 数据可视化 搜索推荐
Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能
2021年7月,Quick BI公共云版本迭代新功能:重磅推出即席分析、模板市场,分析门槛再降低;推出企业微信无缝对接,移动端类目个性配置及管理提升多端能力;数据建模配置交互升级至拖拽模式提升效率,新增数据源并新增群空间文件上传能力;行列权限安全升级,配置更加灵活及精细化。
1193 0
Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能
|
测试技术 iOS开发
【2021年首场】阿里云应用质量管理沙龙 . 北京站
【应用质量管理沙龙(北京站)】是由阿里云移动研发平台EMAS主办、蚂蚁技术参与的线下交流活动。活动主旨是为客户赋能移动端应用的质量提升方案,从iOS abort、网络分析、性能测试等多个领域介绍蚂蚁和阿里云的经验。活动邀请了阿里云和蚂蚁在移动研发效能方向有资深经验的相关专家沟通交流,与您共同探讨移动端应用的新一代质量管理方案,探寻最佳应用实践。
【2021年首场】阿里云应用质量管理沙龙 . 北京站
|
存储 算法 关系型数据库
|
网络协议 负载均衡
|
Java Android开发 计算机视觉
OpenCV For Java环境搭建与功能演示
OpenCV概述 OpenCV做为功能强大的计算机视觉开源框架,包含了500多个算法实现,而且还在不断增加,其最新版本已经更新到3.2。其SDK支持Android与Java平台开发,对于常见的图像处理需求几乎都可以满足,理应成为广大Java与Android程序员的首先的图像处理框架。
1734 0

热门文章

最新文章