快速链接

  • 原题链接
  • 题目大意
  • 输入格式
  • 输出格式
  • 数据范围
  • 解题思路
    • 小技巧
  • 上代码

原题链接

P3382
题目类型:普及/提高−{\color{yellow} 普及/提高-}普及/提高−
AC记录:Accepted

题目大意

给你一个数列,你需要下面两种操作:

如题,给出一个 nnn 次函数,保证在范围 [l,r][l,r][l,r] 内存在一点 xxx,使得[l,r][l,r][l,r]上单调增,[x,r][x,r][x,r]上单调减。试求出xxx的值。

输入格式

第一行包含一个正整数nnn和两个实数l,rl,rl,r,含义如题目描述所示。
第二行包含n+1n+1n+1个实数,从高到低依次表示该NNN次函数各项的系数。

输出格式

输出为一行,包含一个实数,即为xxx的值。若你的答案和标准答案的绝对误差不超过10−510^{-5}10−5则算正确。

Sample\mathbf{Sample}Sample Input\mathbf{Input}Input

3 -0.9981 0.5
1 -3 -3 1

Sample\mathbf{Sample}Sample Output\mathbf{Output}Output

-0.41421

Hint&Explain\mathbf{Hint\&Explain}Hint&Explain

数据范围

对于100%100\%100%的数据,6≤n≤136\le n\le 136≤n≤13,函数系数均在[−100,100][-100,100][−100,100]内且至多151515位小数,∣l∣,∣r∣≤10|l|,|r|\le 10∣l∣,∣r∣≤10且至多151515位小数。l≤rl\le rl≤r。

解题思路

这是一道三分法的模板题。


三分法和二分法非常像,就是把原来的用一个点分成两段改成了用两个点分成三段。设第一个点为xxx,第二个点为yyy,题目给我们的nnn次函数为f(x)f(x)f(x),以下同。
三分的策略为:

1.如果f(x)<f(y),则舍去左半段\color{red}1.如果f(x)<f(y),则舍去左半段1.如果f(x)<f(y),则舍去左半段
2.如果f(x)>f(y),则舍去右半段\color{orange}2.如果f(x)>f(y),则舍去右半段2.如果f(x)>f(y),则舍去右半段
3.重复1,2直到∣l−r∣≤10−5\color{green}3.重复1,2直到|l-r|\le 10^{-5}3.重复1,2直到∣l−r∣≤10−5

按着这个做就可以了。


小技巧

1.通常人们会把区间分成三等分,其实只要把xxx设成mid−10−5mid-10^{-5}mid−10−5,yyy设成mid+10−5mid+10^{-5}mid+10−5就可以了。这样就可以在每一次舍弃区间时都舍掉将近12\frac{1}{2}21​的长度,提高效率。
2.在计算函数的时候用秦九韶算法,提高效率。


最后,祝大家早日

上代码

#include<iostream>
#include<cmath>using namespace std;double eps=1e-7;
int n;
double l,r;
double num[23];double f(double x)
{double sum=0;for(int i=1; i<=n+1; i++)sum=sum*x+num[i];return sum;
}int main()
{cin>>n;cin>>l>>r;for(int i=1; i<=n+1; i++)cin>>num[i];while(fabs(l-r)>eps){double mid=(l+r)/2.0;if(f(mid-eps)<f(mid+eps))l=mid;elser=mid;}cout<<l<<endl;return 0;
}

完美切题∼\sim∼

P3382 【模板】三分法相关推荐

  1. c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法

    本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...

  2. 二分法、三分法 --算法竞赛专题解析(1)

    本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 2019.8 网购:京东 当当      作者签名书 如有建议, ...

  3. 三分的多种写法及对应的精度 三分套三分原理

    https://www.luogu.org/problemnew/show/P3382 正规三分法 study from: https://blog.csdn.net/pi9nc/article/de ...

  4. P3382 【模板】三分法,难度⭐⭐⭐

    P3382 [模板]三分法 法1 : 三分法 对于一个二次函数[L,R]内取最值,选取两个点x=(2∗l+r)/3,y=(l+2∗r)/3 若f(x)>f(y),那么[y,R]这一段可以舍弃(一 ...

  5. 洛谷P3382 【模板】三分法

    P3382 [模板]三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个 ...

  6. 洛谷 P3382 【模板】三分法

    https://www.luogu.org/problem/show?pid=3382 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减. ...

  7. 算法设计 - 二分法和三分法,洛谷P3382

    二分法 二分查找:找目标值位置 二分法是一种适用于特殊场景下的分治算法. 这里的特殊场景指的是,二分法需要作用在一个具有单调性的区间内. 比如,我们熟知的二分查找,就是一种二分法的具体实现,二分查找必 ...

  8. leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】

    目录 题目截图 题目分析 第一版丑陋了考虑所有[minn, maxn]变化量 第二版优雅只考虑给定点(猜结论) 三分法学习 总结 题目截图 题目分析 由于暴力是平方不行 这种题目可以考虑变化量,从最小 ...

  9. OI模板大全(普及~省选NOI)

    整理的算法模板合集: ACM模板 hhh刚从某位大佬的洛谷首页偷到了一个好玩的东西 大佬在这儿 自己对照了一下原来我还有这么多东西没有学呜呜呜我好菜 普及- 模板大全续表续表A并查集A快速幂-取余运算 ...

最新文章

  1. POJO、VO、PO、FormBean区别:
  2. 深入RESTful无状态原则
  3. Python 实现批量从不同的Linux服务器下载文件
  4. java 极客_Java极客思维
  5. 学完Java后可从事的十大领域!
  6. vue3 中使用动画技术
  7. SQL SERver2005中row_number() 的用法
  8. kubectl配置tab补全
  9. umijs 出错 TypeError: rawData.some is not a function
  10. 河南的抗疫英雄(C语言嘞)
  11. python英文词频统计-Python实现统计英文文章词频的方法分析
  12. 本地自签https证书
  13. 点击链接跳转到微信公众号关注页、微信关注链接。
  14. pmp考试24计 | 第十三计-计清:首先和首要
  15. 【VPR】 Command-line - vpr的命令行选项(一)
  16. 一款不错的Linux命令行下的FTP客户端软件
  17. 【笔记分享】RS触发器
  18. 基于51单片机的lcd1602万年历设计_温度+闹钟心得
  19. 景点查询系统c语言程序,《C语言程序设计》课程计报告-景点查询系统.doc
  20. Ubuntu20.04修改任务栏位置

热门文章

  1. 新媒体背景下大学生的志愿服务参与研究(lunwen+任务书)
  2. 文华编程是c 语言吗,文华财经编程规则
  3. 量化分析师的Python日记【Q Quant兵器谱之函数插值】
  4. 分式计算机,计算机网络与分式系统.ppt
  5. 云计算虚拟化:k8s二进制Master主备集群部署
  6. 大学物理:补充-角动量
  7. 我国首次评选30名国医大师 享省部级劳模待遇
  8. 人工智能轨道交通行业周刊-第27期(2022.12.12-12.25)
  9. learn java step by step day14
  10. teamviewer 5分钟断线解决办法