二分查找(vijos1116一元三次方程求解NOIP2001第一题)
来源:互联网 发布:导航仪端口查询工具 编辑:程序博客网 时间:2024/05/17 06:56
有形如:ax^3+bx^2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。
输入该方程中各项的系数(a,b,c,d 均为实数),
由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。
样例输入1
1 -5 -4 20
样例输出1
-2.00 2.00 5.00
每个测试点1s
提示:记函数f(x),若存在2个实数x1和x2,且x1<x2,使f(x1)*(x2)<0,则在(x1, x2)之间一定存在实数x0使得f(x0)=0。
思路就是二分查找啦~用一个变量你记录现在已经有几个根了。
#include<bits/stdc++.h>using namespace std;double ans[3];double a,b,c,d;int n=0;double f(double x){return x*x*x*a+x*x*b+x*c+d;}void solve(double l,double r){if(f(l)*f(r)>0&&((r-l)<1||n>=2))return ;double mid=(l+r)/2;if(abs(f(mid))<=1e-5){ans[n++]=mid;return ;}solve(l,mid),solve(mid,r);}int main(){cin>>a>>b>>c>>d;solve(-100,100);printf("%.2f %.2f %.2f",ans[0],ans[1],ans[2]);return 0;}
阅读全文
0 0
- 二分查找(vijos1116一元三次方程求解NOIP2001第一题)
- noip2001一元三次方程求解(二分)
- NOIP2001 一元三次方程求解
- 【NOIP2001】一元三次方程求解
- noip2001 一元三次方程 (枚举+二分)
- NOIP2001提高组 一元三次方程求解
- 一元三次方程求解(折半查找)
- 【枚举暴搜】【NOIP2001】一元三次方程求解
- 洛谷 P1024 [NOIP2001 T1] 一元三次方程求解
- NOIP2001 提高组 复赛 一元三次方程求解
- 洛谷P1024/NOI题库7891(2.3)/NOIP2001提高组T1 一元三次方程求解
- 算法训练 一元三次方程求解 二分
- 一元三次方程求解
- 一元三次方程求解
- 一元三次方程求解
- 一元三次方程求解
- 一元三次方程求解
- 一元三次方程求解
- 数列(NOIP17提高模拟训练11)
- 运算符的优先级(c#,c,java)
- 记忆化搜索(游戏NOIP17提高模拟训练11)
- 模拟(婚礼上的小杉vijos1389)
- 记忆化搜索+dp(洛谷1514 引水入城2010noip提高组)
- 二分查找(vijos1116一元三次方程求解NOIP2001第一题)
- Servlet中get和post方法区别
- 二叉树的三种遍历方式总结
- dfs(vijos113424点游戏)
- 模拟 (NOIP17提高模拟训练11六边形)
- dfs(0634-数独)
- 二分查找(vijos1450包裹快递)
- BFS+康托展开(洛谷1379 八数码难题)
- 二分查找or线段树(借教室洛谷1083vijos1782NOIP 2012 提高组 第二天 第二题)