*题目编号1005
*简单题意:一辆车需要拐一个垂直弯道,给出了弯道两边的宽度以及车的长宽,问车能否通过
*解题思路:车的一边尽量靠着拐点,另一边要离另一边远一点。
*感想:画图想象,实际分析很重要
*源码:
# include <iostream>
# include <cmath>
using namespace std;
# define PI acos(-1.0)
double x,y,l,w,s,h;
double judge(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(cin>>x>>y>>l>>w)
{
left = 0;
right = PI/2;
while( fabs(right-left)>1e-8 )
{
mid = (left+right)/2;
midmid = (mid+right)/2;
if( judge(mid) >= judge(midmid) ) right = midmid;
else left = mid;
}
if( judge(mid)<=y ) cout<<"yes\n";
else cout<<"no\n";
}
return 0;
}
Turn the corner
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 50 Accepted Submission(s) : 26
10 6 13.5 4<br>10 6 14.5 4<br>
yes<br>no<br>