1500. 误差曲线

★★   输入文件:errorcurves.in   输出文件:errorcurves.out   评测插件
时间限制:1 s   内存限制:256 MB

【题目描述】

Josephina是一名聪明的妹子,她最近痴迷于机器学习。她花费了大量精力学习线性判别分析,因为其中有不少有趣的性质。

为了测试算法的性能,她收集了许多数据。每组数据都分成两个部分:训练数据和测试数据。她在训练数据中解算模型的参数,并且在测试数据中测试这个模型。

令她惊讶的是,她发现每组数据的误差曲线都是一条抛物线。一条抛物线对应一个二次函数。在数学中,二次函数指形如f(x)=ax2+bx+c的多项式函数。如果a=0,二次函数就退化为线性函数。

如果只有一条误差曲线,那么计算最小的误差将非常简单。但这里有多组数据,这意味着Josephina将得到多组误差曲线。Josephina希望调整参数以更好地拟合所有数据。因此她必须统计所有的误差曲线。也就是说,她必须处理许多二次函数,并得出一条新的错误曲线来代表所有的错误。现在,她正关注一个与许多二次函数有关的函数的最小值。

这个新函数定义如下:

F(x)=max(Si(x)),i=1,2,...,n。x的范围是[0,1000]。Si(x)是一个二次函数。

Josephina希望知道F(x)的最小值。不幸的是,用代数方法求解过于复杂。作为一名机智的程序员,你能帮她解决这个问题吗?

【输入格式】

输入包含多组数据。

输入文件的第1行是1个正整数T(T<100),表示数据组数。

每组数据的第1行是一个正整数n(n<=10000)。

接下来的n行,每行有3个正整数a(0<=a<=100),b(|b|<=5000),c(|c|<=5000),描述一个二次方程的相应系数。

【输出格式】

对每组数据,输出一行一个实数,即答案。

【样例输入】

2

1

2 0 0

2

2 0 0

2 -4 2

【样例输出】

0.0000

0.5000

【提示】

答案允许有不超过0.01的误差。

【来源】

UVa1476 Error Curves

刘汝佳,《算法竞赛入门经典训练指南》表2-14

思路:

本题的难点在于读题。

读透了题目后,这个题就是三分的模板题。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 10100
#define eps 1e-7
using namespace std;
int T,n;
double ans;
double a[MAXN],b[MAXN],c[MAXN],minn[MAXN];
double l,r,mid1,mid2;
double f(double x){
ans=-0x7f7f7f7f;
for(int i=;i<=n;i++) ans=max(ans,x*x*a[i]+x*b[i]+c[i]);
return ans;
}
int main(){
freopen("errorcurves.in","r",stdin);
freopen("errorcurves.out","w",stdout);
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lf%lf%lf",&a[i],&b[i],&c[i]);
l=;r=;
while(r-l>eps){
mid1=(l+r)/;
mid2=(mid1+r)/;
if(f(mid1)>f(mid2)) l=mid1;
else r=mid2;
}
printf("%.4lf\n",f(l));
}
}

cogs 1500. 误差曲线的更多相关文章

  1. Cogs 1500. 误差曲线(三分)

    误差曲线 ★★ 输入文件:errorcurves.in 输出文件:errorcurves.out 评测插件 时间限制:1 s 内存限制:256 MB [题目描述] Josephina是一名聪明的妹子, ...

  2. [BZOJ 1500]维修数列 [Splay Tree从进阶到住院]

    历尽艰辛终于A掉了这题QwQ 贴COGS评论区几句话=.= 策爷:"splay/块状链表的自虐题.".深刻理解到如果没有M倾向就不要去写这题了.. -Chenyao2333 记得b ...

  3. COGS——T 1786. 韩信点兵

    http://www.cogs.pro/cogs/problem/problem.php?pid=1786 ★★★   输入文件:HanXin.in   输出文件:HanXin.out   简单对比时 ...

  4. ae_将面积小于1500的Feature同附近Feature进行合并

    private void 合并1500图斑ToolStripMenuItem_Click(object sender, EventArgs e) { /* *将图层中面积小于1500的图斑与之相同BS ...

  5. 【COGS 254】【POI 2001】交通网络图

    http://www.cogs.top/cogs/problem/problem.php?pid=254 dist[i]表示能最早到达i点的时间.这样就可以用最短路模型来转移了. #include&l ...

  6. UVA136 求第1500个丑数

    枚举大范围数据..暴力检查题目条件 #include <iostream> #include <cstdio> #include <vector> #include ...

  7. 【COGS】894. 追查坏牛奶

    http://cojs.tk/cogs/problem/problem.php?pid=894 题意:n个点m条边的加权网络,求最少边数的按编号字典序最小的最小割.(n<=32, m<=1 ...

  8. 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)

    http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...

  9. 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)

    http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...

随机推荐

  1. Linux 文件描写叙述符设置为非堵塞的方法

    通过fcntl设置文件描写叙述符属性 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,堵塞设置成非堵塞,非堵塞设置成堵塞(这连个在server开发中能够封装为基本函数) 1.获 ...

  2. shell学习-while

    1.shell while语句语法 while condition do statements done 2.shell while语句实例 #! /bin/sh 2 var1=1 3 while(( ...

  3. angularjs --- ngResource 类似于 ajax发送请求。

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  4. Wow C++11

    什么是C++11? 一句话C++11是最新的C++标准,在2011年发布,所以叫C++11.在新的标准出现前,我们一直在用的是C++98,可想而知这份标准是1998年发布的,之后再2003年最过小的修 ...

  5. PostgreSQL源代码中插件的使用

    如果编译数据库时使用了gmake world和gmake install-world, 所有的插件都会被安装, 那么就不需要再次安装了. 插件目录 contrib 进入要安装的插件目录, 例如 cd ...

  6. Java调用Python遇到的一系列问题与解决方案

    首先,百度了几个方法 1.用jython里的一个jar包,jython.jar,里面封装了一个专门调用Python的类, 但是不知道为什么我用Java一调用就报错,因此放弃.   2.用runtime ...

  7. Python3基础笔记--装饰器

    装饰器是十二分重要的高级函数. 参考博客:装饰器 所需前提知识: 1.作用域: LEGB 2.高阶函数 高阶函数是至少满足下列一个条件的函数: 1)接受一个或多个函数作为输入 2)输出一个函数 注意理 ...

  8. 【Git 一】Linux安装Git

    一.Git 的优势 #简单说一下 Git 的优势. 1.版本库本地化,支持离线提交,相对独立不影响协同开发. 2.支持快速切换分支方便合并,比较合并性能好. 3.分布式管理,适应不同的业务场景. 4. ...

  9. HDU-6109 数据分割 并查集(维护根节点)

    题目链接:https://cn.vjudge.net/problem/HDU-6109 题意 给出多组等式不等式 对于每一个式子,首先判断是否不可能 如果不可能,记录本组正确式子的个数,然后进入下一组 ...

  10. java源码学习

    Collection List ArrayList LinkedList Vector Stack Set HashSet TreeSet Map HashMap TreeMap LinkedHash ...