日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu2438 三分

發(fā)布時間:2025/6/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu2438 三分 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題意:
? ? ? 給你個90度的轉(zhuǎn)彎,和一輛標準矩形的車,問你這臺車能不能拐過去..

思路:


? ? ?求出靠近最里側(cè)的那條邊所在的直線(這個圖形右下角為坐標原點)?
? ? ?y = x * tan(du) + l * sin(du) + d / cos(du);
? ? ?那么我們現(xiàn)在固定y = 題目中的那個 X則,根據(jù)(du)的不同,我們可以找到不同的x,
只要-x或者x的絕對值最大的時候小于 題目中的 Y就行了,所以先求反函數(shù)
x = y * tan(du) + l * sin(du) + d / cos(du)

則 -y = (-x + l * sin(du) + d / cos(du)) / tan(du) 讓他最大就行了,因為他是凸(凹)性的函數(shù)所以用三分找(凸(凹)性可以根據(jù)二次導(dǎo)數(shù)判斷).?

#include<stdio.h> #include<math.h>#define eps 1e-9 double PI = acos(-1.0); double X ,Y ,L ,D;double Fun(double du) {return (-X + L * sin(du) + D / cos(du)) / tan(du); }bool solve() {if(X < D || Y < D) return 0;double low ,up ,mid ,mmid;double dis1 ,dis2;low = 0;up = PI / 2;while(1){mid = (low + up) / 2;mmid = (mid + up) / 2;dis1 = Fun(mid);dis2 = Fun(mmid);if(dis1 > dis2) up = mmid;else low = mid;if(up - low < eps) break;}return dis1 <= Y; }int main () {while(~scanf("%lf %lf %lf %lf" ,&X ,&Y ,&L ,&D)){solve()? printf("yes\n") : printf("no\n");}return 0; }

總結(jié)

以上是生活随笔為你收集整理的hdu2438 三分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。