P3382 【模板】三分法
题目描述
如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减。试求出x的值。
输入输出格式
输入格式:
第一行一次包含一个正整数N和两个实数l、r,含义如题目描述所示。
第二行包含N+1个实数,从高到低依次表示该N次函数各项的系数。
输出格式:
输出为一行,包含一个实数,即为x的值。四舍五入保留5位小数。
输入输出样例
3 -0.9981 0.5
1 -3 -3 1
-0.41421
说明
时空限制:50ms,128M
数据规模:
对于100%的数据:7<=N<=13
样例说明:

如图所示,红色段即为该函数f(x)=x^3-3x^2-3x+1在区间[-0.9981,0.5]上的图像。
当x=-0.41421时图像位于最高点,故此时函数在[l,x]上单调增,[x,r]上单调减,故x=-0.41421,输出-0.41421。
三分法:(按照题目来)
风格1
#include<cstdio>
#include<cmath>
using namespace std;
const int N=1e5+;
const double eps=1e-;
int n;double L,R,a[N];
double f(double x){
double res=a[]+a[]*x;
for(int i=n;i>;i--) res=res+a[i]*pow(x,i);
return res;
}
double three_divide(){
double l=L,r=R,lmid,rmid;
while(r-l>eps){
lmid=(l+r)/2.0;
rmid=(r+lmid)/2.0;
if(f(lmid)<f(rmid)) l=lmid;
else r=rmid;
}
return l;
}
int main(){
scanf("%d",&n);
scanf("%lf%lf",&L,&R);
for(int i=n;i>=;i--) scanf("%lf",&a[i]);
printf("%.5lf",three_divide());
return ;
}
风格2
#include<cstdio>
#include<cmath>
using namespace std;
const int N=1e5+;
const double eps=1e-;
int n;double L,R,a[N];
double f(double x){
double res=a[]+a[]*x;
for(int i=n;i>;i--) res=res+a[i]*pow(x,i);
return res;
}
double three_divide(){
double l=L,r=R,lmid,rmid;
while(r-l>eps){
lmid=(*l+r)/3.0;
rmid=(l+*r)/3.0;
if(f(lmid)<f(rmid)) l=lmid;
else r=rmid;
}
return l;
}
int main(){
scanf("%d",&n);
scanf("%lf%lf",&L,&R);
for(int i=n;i>=;i--) scanf("%lf",&a[i]);
printf("%.5lf",three_divide());
return ;
}
二分法:(用导函数求0点)
#include<cstdio>
#include<cmath>
using namespace std;
const int N=1e5+;
const double eps=1e-;
int n;double L,R,a[N];
double F(double x){
double res=a[];
for(int i=n;i>;i--) res=res+(double)i*a[i]*pow(x,i-);
return res;
}
double two_divide(){
double l=L,r=R,mid;
while(r-l>eps){
mid=(l+r)/2.0;
if(F(mid)<=) r=mid;
else l=mid;
}
return l;
}
int main(){
scanf("%d",&n);
scanf("%lf%lf",&L,&R);
for(int i=n;i>=;i--) scanf("%lf",&a[i]);
printf("%.5lf",two_divide());
return ;
}
P3382 【模板】三分法的更多相关文章
- 【洛谷 p3382】模板-三分法(算法效率)
题目:给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 解法:与二分法枚举中点使区间分成2份不一样,三分法是枚举三分点,再根据题目的情况修 ...
- 洛谷P3382 【模板】三分法(三分找凹凸点)
P3382 [模板]三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个 ...
- 洛谷 P3382 【模板】三分法(三分 二分)
P3382 [模板]三分法 题目提供者HansBug 难度 普及/提高- 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. ...
- 洛谷P3382 【模板】三分法(三分)
题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次包含一个正整数N和两个实数l.r,含 ...
- 洛谷 P3382 【模板】三分法
https://www.luogu.org/problem/show?pid=3382 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减. ...
- [洛谷P3382]【模板】三分法
题目大意:给出一个$N$次函数,保证在范围$[l,r]$内存在一点x,使得$[l,x]$上单调增,$[x,r]$上单调减.试求出$x$的值. 题解:求导,就变成了求零点,二分答案即可 卡点:无 C++ ...
- LUOGU P3382 【模板】三分法 (三分)
传送门 解题思路 三分,填坑.每次取l与r的中间值mid,然后向左移一点点,向右移一点点进行判断,判断时用秦九韶算法即可. #include<iostream> #include<c ...
- [luogu P3382] 三分法
[luogu P3382] 三分法 题目描述 如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减.试求出x的值. 输入输出格式 输入格式: 第一行一次 ...
- 三分法-洛谷P3382
wampserver没下下来,lcm莫比乌斯反演写挂了,splay树段错误, nobody ever knows writing bugs better than me 然后今晚要打cf,不如先写个三 ...
随机推荐
- NYOJ 27.水池数目-DFS求连通块
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...
- HDU 1018 Big Number【斯特林公式/log10 / N!】
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- JMeter进行http接口测试
Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试. 一.开发接口测试案例的整体方案: 第一步:我们要 ...
- 洛谷——P1125 笨小猴
P1125 笨小猴 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设max ...
- 查看tomcat启动文件都干点啥---Bootstrap.java
在上一章查看tomcat启动文件都干点啥---catalina.bat,说了在catalina.bat中都走了什么流程,最重要的是,我们得出了如下这段命令: _EXECJAVA=start " ...
- asp.net获取URL方法
方法如下: Request.Url.ToString()获取完整url(协议名+域名+站点名+文件名+参数):https://localhost:44300/WebForm1.aspx?abc=123 ...
- 【java】StringBuilder的三种清除方法对比
参考链接:https://blog.csdn.net/roserose0002/article/details/6972391
- 主机屋 ubuntu 14安装nginx
http://www.cnblogs.com/piscesLoveCc/p/5794926.html 安装gcc g++的依赖库 1 sudo apt-get install build-essent ...
- SVN源码服务器搭建-详细教程
一.引言 笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文, ...
- Youtube深度学习推荐系统论文
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf https://zh ...