1435:【例题3】曲线 一本通 代替三分

1435:【例题3】曲线
题目来源:一本通oj链接
在这里插入图片描述

代替三分

题意

给出t组数据,每组里面有n个函数,求出t组数据的函数的最小值

思路

  • 函数是二次函数,具有单峰性,利用左右两边单调性的原理可以进行答案三分处理(二分没办法处理,二分后每次区间跨度大,容易把最值的地方给漏掉)

在这里插入图片描述

  • 由于a属于区间【0,100】,开口向上具有最小值,三分时,遍历当前组的每个函数,记录最小值即可

  • 当cal(m1)<=cal(m2)说明最值应该靠近左边,此时r = m1缩小查找范围

  • 当cal(m1)>cal(m2)说明最值应该靠近右边,此时r= m2缩小查找范围

数据约束

暂无,注意数组大小

注意事项

  • 由于题目要求是输出四位小数,所以务必输出是4位,且为四舍五入

  • 精度是四位,但是l-r的差值尽量>>1e-4, 否则四舍五入会出问题,1e-10 提供了更高的精度,使得三分法能更精确地逼近最优解。对于浮点数的计算,1e-5 的精度已经可能无法确保找到正确的最小值,尤其是当结果非常接近时,误差可能导致判断失败。所以为了确保精度足够高,可以尝试使用 1e-10 或更小的阈值来控制循环停止的条件

#include<bits/stdc++.h>
using namespace std;
const int N = 10005;
int t,n,a[N],b[N],c[N];
double cal(double m);
int main()
{cin>>t;while(t--){cin>>n;for(int i=0;i<n;i++){ //读入系数a,b,c的数据 cin>>a[i]>>b[i]>>c[i];} double l=0,r=1000;//值只可能在这个区间 double dec = 1e-10;while(r-l>dec){double m1 = l + (r-l)/3.0; double m2 = r-(r-l)/3.0;if(cal(m1)<cal(m2)) r = m2;else l = m1;}//题目求的是最小值,不是x的最小值! cout<<fixed<<setprecision(4)<<cal(l) << endl;
//			printf("%.4lf\n",cal(l));}return 0;
}
double cal(double m){//计算最值double ans = -1e10;for(int i=0;i<n;i++){ans = max(ans,a[i]*m*m+b[i]*m+c[i]);} return ans;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14390.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

英伟达Isaac Manipulator产品体验

相关配置 Isaac Manipulator3.1.0Isaac Sim4.2.0Ubuntu20.04GPURTX 4090 LaptopCPUI9 13900HXMem64GB 过程记录与反馈 GPU加速效果 请描述您在使用Isaac Manipulator时&#xff0c;调用cuMotion加速库来进行机器人运动规划和轨迹优化等任务的步骤和过程&#xff0c;并记录任…

“非法”操控lambda(python)

能过python解释器关卡即是合法脚本代码&#xff0c;偶尔的“违规”操控也是一种唯美。 (笔记模板由python脚本于2024年11月13日 11:18:21创建&#xff0c;本篇笔记适合熟悉python的lambda操控的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.pyth…

[ 网络安全介绍 5 ] 为什么要学习网络安全?

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

java八股笔记-1-java基础

java 特点&#xff1a; 1.平台无关性&#xff0c;java 的字节码文件可以在任何安装了 JVM 的系统上运行 2.面相对象&#xff0c;几乎一切都可以抽象为对象&#xff0c;包括类&#xff0c;对象&#xff0c;继承&#xff0c;封装&#xff0c;多态&#xff0c;抽象 抽象&#xf…

Java入门16——接口

我们今天来学习接口&#xff0c;和继承有点像&#xff0c;话不多说&#xff0c;开始正题~ 一、接口 1.为什么要用接口 接口其实和继承很像&#xff0c;但是继承是 is-a 的关系&#xff0c;接口是 has-a 的关系&#xff0c;而且继承只能是一对一的关系&#xff0c;但是接口可以…

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行串扰分析操作指导-trace耦合

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行串扰分析操作指导-trace 耦合 Sigrity Power SI Power Ground Noise Simulation模式可以用来分析信号间的串扰,以下图为例 2D视图

地下水数值模拟软件Visual modflow Flex实践技术应用

专题一 地下水数值软件的操作流程、建模步骤和所需资料处理及相关注意事项 [1] Visual MODFLOW Flex特征 [2] Visual MODFLOW Flex软件界面及模块 [3] 地下水数值模拟的建模步骤及数据需求 专题二 模型建模操作方法 技巧、真实案例演练、特殊问题处理[1] 直接模型建模的操作方法…

保险、银行等金融行业都在做的“双录”是什么?电子签约如何实现

“双录”也就是同步录音、录像&#xff0c;是指在特定的业务场景中通过录音和录像的方式来记录相关业务过程中的关键环节和重要内容&#xff0c;帮助确定业务办理人真实身份和意愿、实现业务过程可回溯管理。 起初&#xff0c;双录主要用于保险销售&#xff0c;后来逐步扩展到…

总结拓展十五:特殊采购业务——寄售采购

1、寄售采购的定义 寄售采购是指供应商提供物料&#xff0c;并将它们存储在你处&#xff0c;在贵公司将这些物料从寄售库存提取&#xff08;转自有&#xff09;之前&#xff0c;该供应商一直是这些物料法律上的所有者。只有当这些物料被贵司转自有领用后&#xff0c;供应商才会…

python 同时控制多部手机

在这个智能时代,我们的手机早已成为生活和工作中不可或缺的工具。无论是管理多个社交媒体账号,还是处理多台设备上的事务,如何更高效地控制多个手机成为了每个人的痛点。 今天带来的这个的软件为你提供了一键控制多部手机的强大功能。无论是办公、娱乐,还是社交,你都能通过…

c++:string(一)

文章目录 一string类1C语言中的字符串2C中的string二遍历1[ ]2迭代器3const迭代器4范围for5auto6总结三String的尾插1size和length2max_size,capacity和clear3访问接口4尾插字符和字符串5 append的重载三string的扩容问题&#xff08;1&#xff09;怎么扩容&#xff08;2&#…

如何从数字化迈向智能化的跨越,重塑企业合同管理的未来

随着信息技术的快速发展&#xff0c;越来越多的企业开始认识到合同管理的重要性&#xff0c;并纷纷实施数字化战略以提高管理效率和降低运营成本。然而&#xff0c;仅仅实现合同管理的数字化还远远不够&#xff0c;真正的转型应该是向智能化迈进。本文将通过一个实际案例来探讨…

书生浦语XTuner 微调个人小助手

文章目录 一、环境配置与数据准备1.构建一个xtuner环境2.安装 XTuner3.修改提供的数据四、训练启动1.模型位置2.创建软连接即可3.修改官方的Config4.启动微调4.权重转换4. 模型合并二、进阶任务2.1 上传到 HuggingFace 一、环境配置与数据准备 XTuner 文档链接&#xff1a;XTu…

信捷 XDH PLC C语言 Ethercat 简易绝对运动 BMC_A_DRVA_BODY函数

本文以简易运动为例&#xff0c;描述多轴运动的程序封装。具有一定的参数价值。适用于信捷XDH PLC。 很容易移植到具有Ethercat 总线的PLC,使用ST语言的情况。 1.建立结构体 2.在全局变量表建立全局变量 &#xff08;1&#xff09;DRVA_PAR_array是类型为BMC_A_DRVA&#xff…

磐石云黑名单管理系统

黑名单验证平台是一款基于历史高风险号码实时验证的管理平台&#xff1b; 功能特点&#xff1b; 1、支持代理商账户 2、支持对接三方黑名单库进行缓存&#xff08;俗称扒库&#xff09;&#xff0c;首次获取黑名单后缓存到本地&#xff0c;下次不再付费调用三方接口&#xf…

Objects工具类详解

在 Java 编程中&#xff0c;对象的处理是不可避免的。为了简化对象操作并减少空指针异常&#xff08;NullPointerException&#xff09;的风险&#xff0c;Java 7 引入了 java.util.Objects 类。这个类包含了一系列静态方法&#xff0c;旨在帮助开发者更安全、更高效地处理对象…

InnoDB存储引擎

6.1 逻辑存储结构 InnoDB的逻辑存储结构如下图所示: 6.2 架构 6.2.1 概述 MySQL5.5 版本开始&#xff0c;默认使用InnoDB存储引擎&#xff0c;它擅长事务处理&#xff0c;具有崩溃恢复特性&#xff0c;在日常开发中使用非常广泛。下面是InnoDB架构图&#xff0c;左侧为内存结…

如何使用.bat实现快速电脑关机?

1、在电脑桌面新建一个记事本文档&#xff0c;将如下内容写进去&#xff1a; echo off shutdown /s /t 02、然后&#xff0c;保存一下&#xff0c;再把桌面此文件重命名为电脑关机.bat 3、双击此程序&#xff0c;可以立刻关机电脑。 PS&#xff1a;① 此程序会不保存任何当前…

表的设计(MYSQL)

表的设计方法 范式 第一范式 第二范式 第三范式 实现方式 程序实现

【再谈设计模式】抽象工厂模式~对象创建的统筹者

一、引言 在软件开发的世界里&#xff0c;高效、灵活且易于维护的代码结构是每个开发者追求的目标。设计模式就像是建筑蓝图中的经典方案&#xff0c;为我们提供了应对各种常见问题的有效策略。其中&#xff0c;抽象工厂模式在对象创建方面扮演着重要的角色&#xff0c;它如同一…