hdu3714(三分)

题意:

  n个二次函数,求定义域[0, 1000]时候每个函数的最小值当中的最大值。精确到1e-4

解决:

  三分,eps = 1e-9能过,因为二次函数的函数值精确到1e-4所以自变量x精确度必须高于1e-8

 1 #include <bits/stdc++.h>
 2
 3 const int MAXN = 1e4+10;
 4 double eps = 1e-9;
 5
 6 int n;
 7 int a[MAXN], b[MAXN], c[MAXN];
 8
 9 double fun(double x)
10 {
11     double res = a[1] * x*x + b[1]*x + c[1];
12     for (int i = 2; i <= n; ++i) {
13         res = std::max(res, a[i] * x *x + b[i] * x + c[i]);
14     }
15     return res;
16 }
17
18 int main()
19 {
20     int T;
21     scanf("%d", &T);
22     while (T--) {
23         scanf("%d", &n);
24         for (int i = 1; i <= n; ++i)
25             scanf("%d%d%d", a+i, b+i, c+i);
26         double l = 0, r = 1000;
27         while ( (r - l) > eps) {
28 //            printf("l = %f, r = %f\n", l, r);
29             double ml = l + (r - l) / 3;
30             double mr = r - (r - l) / 3;
31             if (fun(ml) > fun(mr))
32                 l = ml + eps;
33             else
34                 r = mr - eps;
35         }
36         printf("%.4f\n", fun(l));
37     }
38 }
时间: 2024-10-12 08:52:36

hdu3714(三分)的相关文章

hdu3714 三分

Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 4590    Accepted Submission(s): 1753 Problem Description Josephina is a clever girl and addicted to Machine Learning recently. Shepay

hdu3714 三分找最值

Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 4928    Accepted Submission(s): 1867 Problem Description Josephina is a clever girl and addicted to Machine Learning recently. Shepay

HDU3714——三分——Error Curves

Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a method called Linear Discriminant Analysis, which has many interesting properties. In order to test the algorithm's efficiency, she collects many datas

hdu 4717 The Moving Points(三分)

题目链接:hdu 4717 The Moving Points 题意: 在二维平面上有n个点,每个点给出移动的方向和速度. 问在某个时刻,这些点中最大距离最小是多少,输出时刻和距离. 题解: 我们可以知道,每个点对的距离要么是单调递增,要么是有一个峰的函数. 举例画一下可知道合成的这个函数最多只有一个峰,所以可以用三分求解. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespa

三分算法

三分算法 二分算法解决的是具有单调性的问题. 三分算法解决的是抛物线的类型,上凸,下凹. mid=(Left+Right)/2; midmid=(Right+mid)/2; 题目类型有: HDU :3400  2298  4454  2438  3756 POJ:  3301   3737 ZOJ: 3203

uvalive 4986(三分查找)

题意:空间内有n个点,求一个最小体积的圆锥把所有点包进去.输出圆锥的高和底面半径.圆锥的底面圆心在(0,0),所有点的z坐标都大于等于0. 题解:因为圆锥体积是 V = 1/3 * π * r^2 * h ,这是一个二次函数,也就是个凸性函数,可以用三分查找的方式枚举两个高,然后找到对应的最小的r,比对两个高得到的体积继续三分查找. #include <cstdio> #include <cstring> #include <algorithm> #include &l

Toxophily-数论以及二分三分

G - Toxophily Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 2298 Description The recreation center of WHU ACM Team has indoor billiards, Ping Pang, chess and bridge, toxophily, deluxe ballroom

三分 --- CSU 1548: Design road

Design road Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1548 Mean: 目的:从(0,0)到达(x,y).但是在0~x之间有n条平行于y轴的河,每条河位于xi处,无限长,wi宽,并分别给出了建立路和桥每公里的单价 求:到达目标的最小费用. analyse: 比赛的时候一直没想到思路,第二个样列怎么算都算不对,赛后才知道是三分. 首先把所有的桥移到最右端,然后三分枚举路和河的交点. Time

csu 1548: Design road (三分)

题意:需要从(0,0) 点 到(x,y) 修一段路 其中有n条和y轴平行的河 修路的单位成本c1 修桥的单位成本c2 问最小总成本为多少 思路:把所有河合并 再三分桥的长度 求出最小成本 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<stdlib.h> #include<algorithm> #include<queu