1 条题解

  • 0
    @ 2026-7-31 11:01:03
    #include <bits/stdc++.h>
    using namespace std;
    using LL=long long;
    const double eps=1e-9;
    LL n,a[100006],b[100006],c[100006],t;
    double solve (double mid) {
    	double ans=-1e9;
    	for (LL i=1;i<=n;++i) {
    		ans=max(ans,1.0*a[i]*mid*mid+b[i]*mid+c[i]);
    	}
    	return ans;
    }
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	cin>>t;
    	while (t--) {
    		cin>>n;
    		for (LL i=1;i<=n;++i) {
    			cin>>a[i]>>b[i]>>c[i];
    		}
    		double l=0,r=1000;
    		while (r-l>=eps) {
    			double mid1=l+(r-l)/3,mid2=r-(r-l)/3;
    			if (solve(mid1)<=solve(mid2)) {
    				r=mid2;
    			}else {
    				l=mid1;
    			}
    		}
    		printf("%.4lf\n",solve(l));
    	}
    	return 0;
    } 
    
    • 1

    信息

    ID
    1869
    时间
    1000ms
    内存
    512MiB
    难度
    9
    标签
    (无)
    递交数
    15
    已通过
    3
    上传者