zoukankan      html  css  js  c++  java
  • UVA 10341 Solve It

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1282

    Solve the equation:
    p∗e−x + q∗sin(x) + r∗cos(x) + s∗tan(x) + t∗x2 + u = 0
    where 0 ≤ x ≤ 1.
    Input
    Input consists of multiple test cases and terminated by an EOF. Each test case consists of 6 integers in a single line: p, q, r, s, t and u (where 0 ≤ p, r ≤ 20 and −20 ≤ q,s,t ≤ 0). There will be maximum 2100 lines in the input file.
    Output
    For each set of input, there should be a line containing the value of x, correct up to 4 decimal places, or the string ‘No solution’, whichever is applicable.
    Sample Input
    0 0 0 0 -2 1

    1 0 0 0 -1 2

    1 -1 1 -1 -1 1
    Sample Output
    0.7071

    No solution

    0.7554

    解题思路

           函数可判断出来为单调递减函数,因此判断两端点后二分查找

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <queue>
    #include <cmath>
    #include <vector>
    #include <set>
    #include <map>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    #define mod (10e-8)
    double p,q,r,s,t,u;
    double check(double x)
    {
        return p*exp((-1)*x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*x+u;
    }
    int main()
    {
        while(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)!=EOF)
        {
            double left=0.0,right=1.0,mid;
            if(check(left)*check(right)>0){
                puts("No solution");
                continue;
            }
            while((right-left)>mod)
            {
                mid=(left+right)/2.0;
                if(check(left)*check(mid)>0) left=mid;
                else right=mid;
            }
            printf("%.4f
    ",mid);
        }
        return 0;
    }
  • 相关阅读:
    javaScript快速入门
    解决编程式路由往同一地址跳转时会报错的情况
    babel 依赖
    路由拆分可以达到一定程度的性能优化
    正则的扩展
    设计模式
    mysql数据库
    php基本语法
    事件循环
    面向对象编程
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7112649.html
Copyright © 2011-2022 走看看