#1142 : 三分·三分求極值
阿新 • • 發佈:2019-02-03
描述
這一次我們就簡單一點了,題目在此:
輸入
第1行:5個整數a,b,c,x,y。前三個數構成拋物線的引數,後兩個數x,y表示P點座標。-200≤a,b,c,x,y≤200
輸出
第1行:1個實數d,保留3位小數(四捨五入)
樣例輸入2 8 2 -2 6樣例輸出
2.437
三分的模板。
留下做個紀念。
程式碼:
#include <bits/stdc++.h> using namespace std; double a,b,c,x,y; double get(double x1) { return sqrt((x1-x)*(x1-x)+(a*x1*x1+b*x1+c-y)*(a*x1*x1+b*x1+c-y)); } int main() { scanf("%lf%lf%lf%lf%lf",&a,&b,&c,&x,&y); double l=-500,r=500; double mid1,mid2,v1,v2; while(l+1e-6<r) { mid1=(l+r)/2; mid2=(mid1+r)/2; v1=get(mid1); v2=get(mid2); if(v1<=v2) { r=mid2; } else { l=mid1; } } printf("%.3lf\n",get(l)); return 0; }