50分求调
  • 板块P1883 函数
  • 楼主maozixu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/1 18:00
  • 上次更新2024/8/1 19:12:39
查看原帖
50分求调
816958
maozixu楼主2024/8/1 18:00

样例过,subtask0只有50分,代码如下

#include<bits/stdc++.h>
using namespace std;
typedef double dl;
const int maxn = 1010;
const dl eps = 1e-11;
int t,n,a[maxn],b[maxn],c[maxn];
inline dl f(int i,dl x){
	return a[i]*x*x + b[i]*x + c[i];
}
inline dl check(dl x){
	dl ans=INT_MIN;
	for(int i = 1;i <= n;i++)
	ans=max(ans,f(i,x));
	return ans;
}
int main(){
	cin>>t;
	while(t--){
		cin>>n;
		for(int i = 1;i <= n;i++){
			cin>>a[i]>>b[i]>>c[i];
		}
		dl l = 0,r = 1000;
		dl mid1,mid2;
		while(r-l > eps){
			mid1 = l+(r-l)/3.0;
			mid2 = r-(r-l)/3.0;
			if(check(mid1) > check(mid2))l=mid1;
			else r=mid2;
		}
		printf("%.4lf\n",check(l));
	}	
}
2024/8/1 18:00
加载中...