UVA10341:Solve It(二分+math.h库)
2024-08-25 06:19:28
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68990#problem/E
题目要求:p*e-x+ q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0,求出x的值;
where 0 <= x <= 1.
题目解析:
首先要学会观察题目,因为p,r>=0,q,s,t<=0,对上面方程求导发现导数<=0,所以原方程单调递减,(满足使用二分的条件)然后假如方程有答案,则可以利用二分来查找满足条件的解,注意二分的条件边界(!!!),其次上面值都可以通过调用math.h库来实现,具体实现请看代码。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#define eps 1e-9
using namespace std;
double p, q, r, s, t, u;
double findx(double x)
{
return (p*exp(-x) + q*sin(x) + r*cos(x) + s*tan(x) + t*x*x+u);//exp(x)为e^x
}
int main()
{
while(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)!=EOF)
{
double s1 = findx(), s2 = findx(1.0);
if(s1*s2 > )//说明方程没解
{
printf("No solution\n");
continue;
}
double lf = 0.0, rf = 1.0, sum, m;
while(rf-lf > eps)
{
m = (rf+lf)/2.0;
sum = findx(m);
if(sum < ) rf = m;
else lf = m;
}
printf("%.4lf\n", rf);
}
return ;
}
最新文章
- SQL Server 2012 AlwaysOn 亲身实历记
- Webform(邮箱模式)
- HDU 1538
- info grep半翻译加整理
- Titanium系列--安装Titanium Studio 中的Android SDK,JDK以及环境变量的配置(二)
- js控制台调试
- 「译」JavaScript 的怪癖 1:隐式类型转换
- 在SQL Server 2014下面使用的SQL2000的Northwind和Pubs示例数据库
- YII数据库增删查改操作
- 装饰者模式(Decorator)
- 【更新日志】售后CP更新日志
- linux学习 建立静态库,动态库,写简单的makefile
- maven生成war包的两种方式
- JBPM之JPdl小叙
- TCP/IP(八)之总结ICP/IP四层模型
- 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
- day33 锁和队列
- day64 url用法以及django的路由系统
- C#复习正则表达式
- G - 楼房重建 (线段树)
热门文章
- Softmax vs. Softmax-Loss VS cross-entropy损失函数 Numerical Stability(转载)
- 第二百五十三节,Bootstrap项目实战-资讯
- 【BZOJ】2555: SubString(后缀自动机)
- Struts2_day04--自定义拦截器_Struts2的标签库_表单标签
- Android ";Please ensure that adb is correctly located at"; 错误
- 用Broadcast Receiver刷新数据
- Tiny4412 Android 5.0 编译系统学习笔记
- height:calc(100% - 40px)
- dbForge mysql数据库比对
- ZOJ 3607 Lazier Salesgirl (枚举)