UVA 10566 计算几何水题

    xiaoxiao2023-11-11  177

    #include <iostream> #include <algorithm> #include <cmath> #define lc (d<<1) #define rc (d<<1|1) #define m (l+r>>1) #define N 100005 using namespace std; //s(x^2 - d^2) * s(y^2 - d^2) = c * ( s(x^2 - d^2) + s(y^2 - d^2) ); double x,y,c; double s(double d) { return 1-c/sqrt(x*x-d*d)-c/sqrt(y*y-d*d); } int main() { double d,mid; while(cin>>x>>y>>c) { d = min(x,y); double l = 0; double r = d; while(l<=r) { mid = (l+r)/2; if(s(mid)>0){ l=mid+1e-10; }else r=mid-1e-10; } printf("%.3f\n",mid); } return 0; }

     

    最新回复(0)