整理的算法模板合集: ACM模板



我们判断两点(x)之间是否有根的依据是是否存在f(x)∗f(y)<0f(x) * f(y)<0f(x)∗f(y)<0
然后由于题目中说根于根之间的差的绝对值大于等于1,以及范围只有-100100所以我们可以直接枚举,每次+1,缩小范围,然后二分答案精确到0.001即可。

需要注意的是由于我们枚举的时候是从-100到100挨个枚举的所以我们在输出的时候l和r我们只能输出一个,因为一个输出以后另一个由于循环一定会再次到达这个点。所以我们枚举到99,只输出r(l = i, r = i + 1

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<cstring>using namespace std;
typedef long long ll;
const int N = 200007;
const double eps = 1e-3;
//int a[N];
double a, b, c ,d;
int n, m;
double ans;double f(double x)
{return a * x * x * x + b * x * x + c * x + d;
}void solve(double l, double r)//二分x的坐标找那个点
{if(l + eps >= r){printf("%.2f ", l);return ;}double mid = (l + r) / 2.0;double ans_l, ans_r;//if(f(l) == 0)printf("%.2f ", l);if(f(mid) == 0)printf("%.2f ", mid);if(f(r) == 0)printf("%.2f ", r);ans_l = f(l) * f(mid);ans_r = f(r) * f(mid);if(ans_l < 0)solve(l, mid);else if(ans_r < 0)solve(mid, r);
}
//一元三次方程一个根的两端的小范围一定是单调的所以可以用二分
int main()
{scanf("%lf%lf%lf%lf", &a, &b, &c, &d);for(double i = -100; i <= 99; ++ i){if(f(i) * f(i + 1.0) <= 0){//缩小范围,小于0说明有根solve(i, i + 1.0);}}return 0;
}

P1024 一元三次方程求解(递归式二分)相关推荐

  1. 洛谷 P1024 一元三次方程求解 (暴力 or 二分 or 盛金公式)

    P1024 一元三次方程求解 题意 有形如:ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,da, ...

  2. P1024 一元三次方程求解 牛顿迭代+盛金公式+二分+勘根定理

    P1024 一元三次方程求解 传送门 题目描述 有形如:ax^3+bx^2+cx^1+dx^0=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实 ...

  3. 洛谷 [P1024]一元三次方程求解【二分答案】

    题目链接:https://www.luogu.org/problemnew/show/P1024 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b ...

  4. [NOIP2001] 提高组 洛谷P1024 一元三次方程求解

    题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差 ...

  5. 洛谷 P1024 一元三次方程求解

    不会二分就暴力计算 提示:记方程f(x)=0f(x)=0,若存在22个数x_1x1​和x_2x2​,且x_1<x_2x1​<x2​,f(x_1) \times f(x_2)<0f(x ...

  6. P1024 一元三次方程求解 两种方法

    二分 #include<bits/stdc++.h> using namespace std; double a,b,c,d; double fun(double x){double nu ...

  7. 【luogu 1024 一元三次方程求解】二分思想

    题目出自luogu 1024 一元三次方程求解 描述: 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根( ...

  8. 洛谷——P1024 [NOIP2001 提高组] 一元三次方程求解

    P1024 [NOIP2001 提高组] 一元三次方程求解 题目描述 有形如:a x^3 + b x^2 + c x + d = 0a**x3+b**x2+c**x+d=0 这样的一个一元三次方程.给 ...

  9. P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解

    P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解 # [NOIP2001 提高组] 一元三次方程求解 ## 题目描述 有形如:$a x^3 + b x^2 + ...

最新文章

  1. 大赛归来的你们,依然青春少年
  2. 分摊的意思_接了两单顺风车遇到几个有意思乘客,后来把顺风车软件删了
  3. python3精要(23)-递归与函数列表
  4. IP地址与子网掩码总结
  5. plsql cursor 函数
  6. VM异常关闭后导致虚拟机无法打开问题解决办法【已解决】
  7. 单片机ADC采样算法----卡尔曼滤波
  8. PECL PEAR php扩展模块的简便安装方式
  9. flex右对齐_移动WEB开发 — Flex布局
  10. rk3399_android7.1读写sn和eth mac地址
  11. 程序员求职之道(《程序员面试笔试宝典》)之程序设计基础(static的使用)?...
  12. 最近卡脖子的汽车芯片产业链全景图(车规级芯片)
  13. 锐起无盘找不到服务器,锐起无盘出现重启后连接不到服务器
  14. Exception in thread “main“ java.nio.file.NoSuchFileException: 123.txt
  15. 如何将eclipse项目和svn关联(从服务器取项目)
  16. 牛客网 2018校招真题 爱奇艺 最后一位
  17. python:中文词法分析(LAC)
  18. 蚂蚁开放联盟链已全面公测,预计2月全面上线 | 产业区块链周报
  19. 好书分享:《精装版|VirtualLab Fusion高速物理光学软件中文手册》
  20. 安装rabbitmq图文详情记录

热门文章

  1. 别再折腾开发环境了,一劳永逸的搭建方法
  2. 【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)
  3. 一个检查分区内存并且发送邮件的shell脚本
  4. 用Python实现一个简单的线程池
  5. Java Web整合开发(41) -- Forum
  6. Linux下利用phpize安装php扩展
  7. openssl私有ca创建
  8. RMAN 与control文件和spfile文件的备份
  9. (转)命令行下,用 xcodebuild 生成ipa文件,通过 itms-services 协议安装
  10. 一、cocos2dx之如何优化内存使用(高级篇)