算法题目——二次函数三分求极值(HDU-3714)
题目链接:HDU-3714
题目描述:
对于N个二次函数,求每个二次函数的最小值中的最大值
思路:
使用三分法求极值(递归调用)
对于这种在指定区间里只有一个极值点的函数(凸函数凹函数都可以),我们可以使用三分法求极值
三分极值法的思想:对于区间[l,r],令m=(l+r)/2即中点,再令mm=(m+r)/2,即右半段的中点。这样l,m,mm,r四个点就把区间分成了三份。
此时若m更靠近极值点,则令r=mm。否则令l=m;这样就把区间缩小了。
对于用float类型表示的连续函数,可以设定一个迭代次数size,例如可以取size=100。当运行了100次之后差不多就能取到极值点了
//题目:HDU 3714
//时间:2021/9/30
//作者:lfs
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<vector>
using namespace std;const double eps=1e-9;
const double MIN=0;
const double MAX=1000;
double p[10000+10][3];
int n;double Calc(double a)
{double ans=-1e20;for(int i=0;i<n;i++){ans=max(ans,a*a*p[i][0]+a*p[i][1]+p[i][2]);}return ans;
}
double Solve()
{//三分double Left, Right;double mid, midmid;double mid_value, midmid_value;Left = MIN; Right = MAX;while (Left + eps < Right){mid = (Left + Right) / 2;midmid = (mid + Right) / 2;mid_value = Calc(mid);midmid_value = Calc(midmid);if (mid_value <= midmid_value) Right= midmid;else Left = mid;}return midmid_value;
}
int main()
{// freopen("in.txt","r",stdin);int T;scanf("%d",&T);vector<double> vec;while(T--){scanf("%d",&n);for(int i=0;i<n;i++)scanf("%lf %lf %lf",&p[i][0],&p[i][1],&p[i][2]);vec.push_back(Solve());}for(auto i:vec){printf("%.4lf\n",i);}return 0;
}
算法题目——二次函数三分求极值(HDU-3714)相关推荐
- hihoCoder #1142 : 三分求极值
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- 【HDU - 3714 】Error Curves (三分)
题干: Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention t ...
- 0x04.基本算法 — 二分和三分
目录 一.二分 0.二分法 1.整数域上的二分 2.实数域上的二分 二.三分 0.三分求单峰函数极值 1.P3382 [模板]三分法(秦九韶求多项式+三分) 三.二分答案转化为判定 0.经典例子 1. ...
- python多元函数求解_一元和多元函数求极值(Python)-牛顿法
1. 引言 我们在中学的时候学过一元二次函数,求解时引入一个求根公式,代入公式就可以得到不同的根,假如想计算一个高次方程的解,我们还能推导出求根公式吗? 伽罗瓦在群论中证实,五次及以上多项式方程没有显 ...
- PTA数据结构与算法题目集6-4 6-3 6-8
PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...
- leetcode的回溯算法题目用这个模板解题,一网打尽,so easy!!!
" 这是本人第 46 篇原创博文,每周至少两篇更新,谢谢赏脸阅读文章 这一篇文章来讲解一下如何做leetcode回溯算法题目,这一段时间我把leetcode上面的回溯算法的题目都刷了个遍,发 ...
- PTA 数据结构与算法题目集(中文)
一:数据结构与算法题目(中文版) 7-2 一元多项式的乘法与加法运算 (20 分) 7-3 树的同构 (25 分) 7-4 是否同一棵二叉搜索树 (25 分) 7-6 列出连通集 (25 分)(详解) ...
- 算法训练 6-1 递归求二项式系数值
算法训练 6-1 递归求二项式系数值 问题描述 样例输入 一个满足题目要求的输入范例. 3 10 样例输出 与上面的样例输入对应的输出. 数据规模和约定 输入数据中每一个数的范围. 例:结果在in ...
- HihoCoder上网络流算法题目建模总结
经过了几天的学习和做题,我利用刘汝佳书上的网络流算法模板完成了HihoCoder上的几个网络流算法,HihoCoder可能还会继续更新网络流算法,所以我也会接着总结. 这个主要是对网络流算法的建模做分 ...
最新文章
- iOS视频流采集概述(AVCaptureSession)
- php扩展模块安装-lamp
- 为何互联网大厂热衷于春节撒红包?谁才是最大赢家?
- 从物理到虚拟一次真实的迁移
- centos7怎么重置mysql密码_centOS7.4 重置mysql 密码
- TTL_CMOS_RS232区别
- Java语法教程-Java开发环境安装JDK
- AirPrint: 无交互的后台打印实现(Print without UI,iOS8+)
- tomcat如何通过配置的方式部署web工程
- java什么是网络接口_java 网络编程 -- IP地址的表示与网络接口信息的获取(InetAddress和NetworkInterface)...
- [css] 在固定宽度的div下,怎么让字体自适应大小,不超出宽度,也不要换行
- 【Oracle】使用logmnr工具挖掘日志
- Hive External Table of Doris(详细)
- Gigapixel AI 6.0 for Mac(图片无损放大软件)
- Java基础语法结构
- 三种百度网盘加速器,轻松突破10M/S,总有一款适合你!
- 2021-10-07 浊音,清音,爆破音频谱分析
- 【其实是空空荡荡的牵挂,没有结局的怀念】
- opencv两张图片叠加显示
- win10计算机性能选项在哪,Win10性能大提升,这些设置让你的电脑直接起飞
热门文章
- .NET Core 工具中的新内容
- 如何在 ASP.NET MVC 中集成 AngularJS(2)
- Windows 10中国定制版完工!更专业
- oracle 注册程序,oracle 静态注册
- Java 比较两个版本号的大小 (通用)
- 【Envi风暴】ENVI中求两幅遥感影像的相关性(相关系数)
- 一秒点击屏幕次数测试_安卓App性能专项测试流畅度深度解析
- hutol json null值没了_JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法...
- 命令注入_命令注入绕过方式总结
- python为text添加滚动条_在Tkinter中向一组小部件添加滚动条