P3382 【模板】三分法
快速链接
- 原题链接
- 题目大意
- 输入格式
- 输出格式
- 数据范围
- 解题思路
- 小技巧
- 上代码
原题链接
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 【模板】三分法相关推荐
- c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法
本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...
- 二分法、三分法 --算法竞赛专题解析(1)
本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 2019.8 网购:京东 当当 作者签名书 如有建议, ...
- 三分的多种写法及对应的精度 三分套三分原理
https://www.luogu.org/problemnew/show/P3382 正规三分法 study from: https://blog.csdn.net/pi9nc/article/de ...
- P3382 【模板】三分法,难度⭐⭐⭐
P3382 [模板]三分法 法1 : 三分法 对于一个二次函数[L,R]内取最值,选取两个点x=(2∗l+r)/3,y=(l+2∗r)/3 若f(x)>f(y),那么[y,R]这一段可以舍弃(一 ...
- 洛谷P3382 【模板】三分法
P3382 [模板]三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个 ...
- 洛谷 P3382 【模板】三分法
https://www.luogu.org/problem/show?pid=3382 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减. ...
- 算法设计 - 二分法和三分法,洛谷P3382
二分法 二分查找:找目标值位置 二分法是一种适用于特殊场景下的分治算法. 这里的特殊场景指的是,二分法需要作用在一个具有单调性的区间内. 比如,我们熟知的二分查找,就是一种二分法的具体实现,二分查找必 ...
- leetcode:2448. 使数组相等的最小开销【猜结论落在给定点 + 考虑初始值和变化量 + 三分法模板学习】
目录 题目截图 题目分析 第一版丑陋了考虑所有[minn, maxn]变化量 第二版优雅只考虑给定点(猜结论) 三分法学习 总结 题目截图 题目分析 由于暴力是平方不行 这种题目可以考虑变化量,从最小 ...
- OI模板大全(普及~省选NOI)
整理的算法模板合集: ACM模板 hhh刚从某位大佬的洛谷首页偷到了一个好玩的东西 大佬在这儿 自己对照了一下原来我还有这么多东西没有学呜呜呜我好菜 普及- 模板大全续表续表A并查集A快速幂-取余运算 ...
最新文章
- POJO、VO、PO、FormBean区别:
- 深入RESTful无状态原则
- Python 实现批量从不同的Linux服务器下载文件
- java 极客_Java极客思维
- 学完Java后可从事的十大领域!
- vue3 中使用动画技术
- SQL SERver2005中row_number() 的用法
- kubectl配置tab补全
- umijs 出错 TypeError: rawData.some is not a function
- 河南的抗疫英雄(C语言嘞)
- python英文词频统计-Python实现统计英文文章词频的方法分析
- 本地自签https证书
- 点击链接跳转到微信公众号关注页、微信关注链接。
- pmp考试24计 | 第十三计-计清:首先和首要
- 【VPR】 Command-line - vpr的命令行选项(一)
- 一款不错的Linux命令行下的FTP客户端软件
- 【笔记分享】RS触发器
- 基于51单片机的lcd1602万年历设计_温度+闹钟心得
- 景点查询系统c语言程序,《C语言程序设计》课程计报告-景点查询系统.doc
- Ubuntu20.04修改任务栏位置