二分-UVA10341

来源:互联网 发布:知豆电动汽车代理加盟 编辑:程序博客网 时间:2024/06/04 23:36

https://vj.xtuacm.cf/contest/view.action?cid=115#problem/J
二分简单题

#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>#define ll long longusing namespace std;int main(){    int p,q,r,s,t,u;    while(~scanf("%d %d %d %d %d %d",&p,&q,&r,&s,&t,&u))    {        double l=0,rr=1;        double s1=p*exp(l)+q*sin(l)+r*cos(l)+s*tan(l)+t*l*l+u;        double s2=p*exp(-rr)+q*sin(rr)+r*cos(rr)+s*tan(rr)+t*rr*rr+u;        if((s1>0&&s2>0)||(s1<0&&s2<0))            printf("No solution\n");        else        {            while(1)            {                double mid=(l+rr)/2;                double s3=p*exp(-mid)+q*sin(mid)+r*cos(mid)+s*tan(mid)+t*mid*mid+u;                if(s3<0)                    rr=mid;                else                    l=mid;                if(fabs(rr-l)<1e-7)//精度控制                    break;            }            printf("%.4lf\n",l);        }    }    return 0;}