杭电 2438 Turn the corner 解题报告
解题报告:自己画个图,可知,在y>=max(w/sin(a)+l*cos(a)-x/tan(a))(0<=a<=90)时,汽车可以通过,否则不可通过。
对于这种函数,可以使用三分法,求最大值。笔者比较懒。。。直接暴力,代码如下:
#include<iostream> #include<cmath> using namespace std; int main() { int i=0; double x,y,l,w; double PI=acos(-1.0)/20000; while(cin>>x>>y>>l>>w) { for(i=0;i<=10000;i++) if(y<w/sin(i*PI)+l*cos(i*PI)-x/tan(i*PI)) break; cout<<(i==10001?"yes":"no")<<endl; } }