HDU 2438 Turn the corner【三分】
2016-04-29 16:08
483 查看
点击打开链接
给出汽车当前的街道宽度为x,要转弯进入的街道宽度为y,给出汽车的长度和宽度,为能否通过
解题思路:
![](http://images.cnitblog.com/blog/372420/201303/02150646-08e65d62bdc84f7095c16c858cae297c.jpg)
车转弯的时候车有段与地面的夹角角度是从0度变化到90度的。也就是转弯的时候需要一个最大的宽度才能过去。
否则就卡在 那里了。这个宽度PH是先增加后减少的。是个凸型函数,因此是三分求的极值。
直线y的斜率为tan(θ),还经过点(0, Lsin(θ)+D/cos(θ))因此得到y的直线方程。
y=xtan(θ)+Lsin(θ)+D/cos(θ)
求的PH就是当y=X(汽车当前在的街道的宽度)时,解出的x的值的绝对值。
-x=|x|=(lsinθ+w/cosθ-x)/tanθ; (l==L, D==w)
如果函数满足凸性特点,
但是——求导不方便
三分的前提——数据的凸性
再提醒:凸性并不要求可导!
给出汽车当前的街道宽度为x,要转弯进入的街道宽度为y,给出汽车的长度和宽度,为能否通过
解题思路:
![](http://images.cnitblog.com/blog/372420/201303/02150646-08e65d62bdc84f7095c16c858cae297c.jpg)
车转弯的时候车有段与地面的夹角角度是从0度变化到90度的。也就是转弯的时候需要一个最大的宽度才能过去。
否则就卡在 那里了。这个宽度PH是先增加后减少的。是个凸型函数,因此是三分求的极值。
直线y的斜率为tan(θ),还经过点(0, Lsin(θ)+D/cos(θ))因此得到y的直线方程。
y=xtan(θ)+Lsin(θ)+D/cos(θ)
求的PH就是当y=X(汽车当前在的街道的宽度)时,解出的x的值的绝对值。
-x=|x|=(lsinθ+w/cosθ-x)/tanθ; (l==L, D==w)
如果函数满足凸性特点,
但是——求导不方便
三分的前提——数据的凸性
再提醒:凸性并不要求可导!
import java.util.Scanner; import java.util.TreeSet; public class Main { final static double eps=1E-10; static double x,y,d,w; static double solve(double a){ return -(x-w/Math.cos(a)-d*Math.sin(a))/Math.tan(a); } static void make(){ double low=0,high=Math.acos(-1)/2,mid=0; while(low+eps<high){ mid=(low+high)/2; double midmid=(high+mid)/2; if(solve(mid)>solve(midmid)){ high=midmid; } else low=mid; } //System.out.println(solve(low)); if(solve(mid)>y||x<w)System.out.println("no"); ///注意x<w else System.out.println("yes"); } public static void main(String[] args) { Scanner cin=new Scanner(System.in); while(cin.hasNext()){ x=cin.nextDouble(); y=cin.nextDouble(); d=cin.nextDouble(); w=cin.nextDouble(); make(); } } }
相关文章推荐
- 二叉树的实现&&递归和非递归方式前序、中序、后续遍历&&发现一个节点中序遍历的下一节点
- 知问前端——按钮UI
- ANDROID L——RecyclerView,CardView导入和使用(Demo)
- 关于SizeOf测定JVM中对象占用内存
- BZOJ4378: [POI2015]Logistyka
- 攻城狮学习之路
- nyoj_74 小学生算术
- nyoj195飞翔DP
- oracle数据库rman备份与还原
- jQuery中数据缓存$.data的用法及源码完全解析
- linux系统被入侵后处理经历 推荐
- Java中的堆排序 (PriorityQueue )
- Java中的线程池
- 为什么每天遭受多达3亿次黑客攻击,它却毅然不倒?
- 自己写的代码生成器,spring+spring mvc +Hibernate
- with语句
- docker运行nodejs小程序
- POJ 1637:Sightseeing tour 混合图欧拉回路
- C语言复杂表达式和指针高级应用
- jQuery中的ajax补充