洛谷-P1883-函数最小值
原题:
题目描述
给定n个二次函数f1(x),f2(x),…,fn(x)(均形如ax^2+bx+c),设F(x)=max{f1(x),f2(x),…,fn(x)},求F(x)在区间[0,1000]上的最小值。
输入输出格式
输入格式:
输入第一行为正整数T,表示有T 组数据。
每组数据第一行一个正整数n,接着n行,每行3个整数a,b,c ,用来表示每个二次函数的3个系数,注意二次函数有可能退化成一次。
输出格式:
每组数据输出一行,表示F(x)的在区间[0,1000]上的最小值。答案精确到小数点后四位,四舍五入。
输入输出样例
输入样例#1:
2
1
2 0 0
2
2 0 0
2 -4 2
输出样例#1:
0.0000
0.5000
说明
【数据范围】
T < 10, n ≤ 10000,0 ≤ a ≤ 100,|b| ≤ 5000, |c| ≤ 5000
题解:
转载自
观察题目图像得F(x)函数是一个下凸函数。即对于任意的x1<x2<x3,不存在F(x1)<F(x2)>F(x3),根据这个定义,我们可以通过三分法求该函数的最值。注:本人的三分法是自己推算来的,效率可能不高,请大家谅解!
随便画出二次函数的一段(二次函数是一个特殊的下凸函数),我们发现一个下凸函数其上四个点无非有以下几种情况:
设下凸函数上四个点横坐标分别为x1<x2<x3<x4,并且我们已经确定该函数的最小值在[x1,x4]之间
若F(x1)<F(x2),则函数的最小值的x的取值范围一定在[x1,x2]之间,因为根据定义,若有F(x1)<F(x2),必有F(x1)<F(x2)<F(x3)<F(x4);
若F(x3)>F(x4),同理可得,函数最小值的取值范围一定是在[x3,x4]之间。
若F(x1)>F(x2)&&F(x2)<F(x3),则函数的最小值的x的取值范围一定在[x1,x3]之间,因为下凸函数有且仅有一个低谷,并且下凸函数的最小值在低谷中。
若F(x4)>F(x3)&&F(x3)<F(x2),同理,函数最小值的取值范围一定在[x2,x4]之间。
最后就只剩下一种情况了,此时函数最小值的取值范围一定在[x2,x3]之间。
附上自己写的代码:
#include <iostream>
#include <iomanip>
using namespace std;
int t,n,a[10005],b[10005],c[10005];
double fun(double x)
{double res=-1000000,ans;for(int i=0;i<n;++i){ans=a[i]*x*x+b[i]*x+c[i];res=res>ans?res:ans;}return res;
}
int main()
{cin>>t;while(t--){double l=0,m1,m2,r=1000;cin>>n;for(int i=0;i<n;++i)cin>>a[i]>>b[i]>>c[i];while(l+1e-10<r){m1=(l+l+r)/3;m2=(r+r+l)/3;double v1,v2,v3,v4;v1=fun(l),v2=fun(m1),v3=fun(m2),v4=fun(r);if(v1<v2) r=m1;else if(v3>v4)l=m2;else if(v1>v2&&v2<v3) r=m2;else if(v2>v3&&v3<v4) l=m1;else {l=m1,r=m2;}}cout<<fixed<<setprecision(4)<<fun(l)<<endl;}return 0;
}
此题对于数学思维有一定要求,需要仔细去琢磨。
洛谷-P1883-函数最小值相关推荐
- [洛谷 1883]函数 三分法
三分法的模板,一直提交,一直WA 结果,今天把精度判断从l-r>=t改成 fabs(F(l)-F(r))>=t ,过了三个点,再将 \(t\) 改成 \(10^{-7}\) 就 \(AC\ ...
- 洛谷 深基 第4部分 基础数学与数论(19-21课)
洛谷 深基 第4部分 基础数学与数论 第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...
- 闲来无事刷水题、简单博弈论专题、sg函数、洛谷
记 今天闲来无事,不想刷codeforces了,到洛谷提高组训练营找几道水题刷着玩玩(虽然自己早已过了打OI的年纪)- 简单博弈论专题 P1199 三国游戏 这么考虑,由于电脑总是不能让我搭配出当前能 ...
- 洛谷 P1440 求m区间内的最小值
题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入输出格式 输入格式: 第一行两个 ...
- 洛谷 P2186 小Z的栈函数
洛谷 P2186 小Z的栈函数 题目 题目描述 小Z最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下11个操作: NUM X:栈顶放入X. POP:抛弃栈顶元素. I ...
- 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D
前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...
- 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛
洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...
- python输出一个简单的田字格、用函数简化其代码_Solution Method: 洛谷 P1001 A+B Problem(Python 3 基本输入输出方法及代码简化)...
本文从 洛谷 P1001 A+B Problem 为例,讲一讲 Python 3 在算法竞赛中的一些基本输入输出方法,以及一些利用 Python 3 特性的代码简化 以下为本文将涉及的内容: inpu ...
- 洛谷找最小值c语言,洛谷 P1478 陶陶摘苹果(升级版) C语言实现
原题地址:P1478 淘淘摘苹果(升级版)- 洛谷 题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NO ...
- 洛谷 深基 第1部分 语言入门 第7章 函数与结构体
P5735 [深基7.例1]距离函数 [深基7.例1]距离函数 - 洛谷 P5735 [深基7.例1]距离函数(python3实现) P5735 [深基7.例1]距离函数(python3实现)_青少年 ...
最新文章
- Hinton:我终于想明白大脑怎么工作了!神经学家花三十年,寻找反向传播的生物机制...
- python画笑脸步骤遇到的问题_用python绘制笑脸的基本步骤
- 如何重新安装TCP/IP协议
- Netty原理架构解析
- js 进阶篇 代码等级提升
- C#中的Socket编程-TCP客户端
- 移动端常见的一些兼容性问题
- 上周面试回来后写的Java面试总结,想进BAT必看
- java socket 线程池_程序员:java使用线程池和TCP实现简单多轮聊天系统
- BPM配置故事之案例2-文本默认值
- 四级英语图表作文真题计算机,四级作文辅导二:图表类作文(范文、模板、必备句型。对了,还有作业)...
- java produces_java-在所有产生JSON的端点上使用@Produces(“...
- Graph_editor——好用的画图软件,你会用吗?
- Ladon8.9扫描器简明教程/用法例子
- linux 安装vim 8.2(支持python3)
- 计算机ps基础考试题,2014计算机一级考试PS及基础模拟试题
- obs噪音抑制调多少合适_(3)阿里国际站OBS申请设置使用教程,OBS音频没有声音怎么办?国际站直播回放如何下载?...
- python获取文件夹下指定后缀名文件列表(可手工设定是否遍历子文件夹)cmd复制文件命令使用
- P3332 [ZJOI2013]K大数查询 - 整体二分-区间修改
- 行业垂直类网站的电子商务