标签:
又恬不知耻的开始写题解了,暑假到了,QAQ然而想我这样的弱逼是没有暑假的sad,还是老老实实刷题吧。
题目大意:给一个小车的宽度和长度和两条道路的宽度,判断小车能否通过。
思路:可以先看下面的图,我们可以得到高度h的表达式和角度
#include<iostream> #include<cstdio> #include<cmath> using namespace std; double x,y,l,d; const double pi=3.1415926; const double eps=1e-7; double check(double a) { return l*cos(a)+(d-x*cos(a))/sin(a); } int main() { //freopen("input","r",stdin); while(cin>>x>>y>>l>>d){ if(d>x||d>y)cout<<"no"<<endl; else{ double left=0,right=acos(-1.0)/2; while(left+eps<right){ double mid=(left+right)/2.0; double midd=(mid+right)/2.0; if(check(mid)<check(midd)) left=mid; else right=midd; } if(check(left)<=y)cout<<"yes"<<endl; else cout<<"no"<<endl; } } }
标签:
原文地址:http://www.cnblogs.com/dbwater/p/5645243.html