UVA10341 Solve It

Posted autoint

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA10341 Solve It相关的知识,希望对你有一定的参考价值。

题意

PDF

分析

(0le xle 1)时,(f(x)=pe^{-x}+qsin x+rcos x+s an x+tx^2+u)是减函数,所以当(f(0)ge 0 wedge f(1)le 0)时,函数有唯一零点,否则没有。

那么二分答案即可。控制二分次数,时间复杂度(O(100))

代码

#include<bits/stdc++.h>
#define rg register
#define il inline
#define co const
template<class T>il T read(){
    rg T data=0,w=1;rg char ch=getchar();
    while(!isdigit(ch)) {if(ch=='-') w=-1;ch=getchar();}
    while(isdigit(ch)) data=data*10+ch-'0',ch=getchar();
    return data*w;
}
template<class T>il T read(rg T&x) {return x=read<T>();}
typedef long long ll;

#define F(x) (p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*(x)*(x)+u)
co double eps=1e-14;
int main(){
//  freopen(".in","r",stdin),freopen(".out","w",stdout);
    int p,r,q,s,t,u;
    while(~scanf("%d%d%d%d%d%d",&p,&q,&r,&s,&t,&u)){
        if(F(1)>eps||F(0)<-eps) {puts("No solution");continue;}
        double x=0,y=1,m;
        for(int i=0;i<100;++i){
            m=(x+y)/2;
            F(m)<0?y=m:x=m;
        }
        printf("%.4lf
",m);
    }
    return 0;
}

以上是关于UVA10341 Solve It的主要内容,如果未能解决你的问题,请参考以下文章

UVA 10341 Solve It

UVA 10341

uva-10341-二分法

[uva] 1671 History of Languages

UVA - 10539 Almost Prime Numbers (几乎是素数)

UVA 796 Critical Links —— (求割边(桥))