杭电 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;

    }

}

 

你可能感兴趣的:(杭电)