hdu 2199 Can you solve this equation?

简介: 点击打开hdu2199 思路: 二分 分析: 1 求题目给定的等式是否有[0,100]之间的解 2 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6是一个单调递增的函数,那么求解的话我们利用二分的思想 3 注意判断没有解的...

点击打开hdu2199

思路: 二分
分析:
1 求题目给定的等式是否有[0,100]之间的解
2 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6是一个单调递增的函数,那么求解的话我们利用二分的思想
3 注意判断没有解的情况就是Y < 0 或者 Y大于x为100的时候等式的值

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;

const double eps = 1e-10;

double Pow(double x , int y){
    double sum = 1;
    for(int i = 0 ; i < y ; i++)
        sum *= x;
    return sum;
}

void solve(double n){
    double left = 0.0;
    double right = 100.0;
    double mid;
    double sum = 8*Pow(100,4)+7*Pow(100,3)+2*Pow(100,2)+300;
    n -= 6;
    if(n < 0 || n > sum){
        puts("No solution!");
        return;
    }
    while(right-left > eps){
         mid = (left+right)/2.0; 
         sum = 8*Pow(mid,4)+7*Pow(mid,3)+2*Pow(mid,2)+
             3*mid;
         if(sum - n > eps){
             right = mid;  
         } 
         else{
             left = mid; 
         }
    }
    printf("%0.4lf\n" , left);
}

int main(){
    int cas;
    double n;
    scanf("%d" , &cas);
    while(cas--){
         scanf("%lf" , &n); 
         solve(n);
    }
    return 0;
}


目录
相关文章
|
6月前
codeforces 285C - Building Permutation
题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。 既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。
18 0
|
5月前
|
图形学
hdu1086 You can Solve a Geometry Problem too(判断线段相交)
hdu1086 You can Solve a Geometry Problem too(判断线段相交)
27 0
|
8月前
UVa10484 - Divisibility of Factors(数论)
UVa10484 - Divisibility of Factors(数论)
41 1
HDU-1097,A hard puzzle(快速幂)
HDU-1097,A hard puzzle(快速幂)
|
算法 Go
HDU-1548,A strange lift(Dijkstra)
HDU-1548,A strange lift(Dijkstra)
HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)
HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)
100 0
HDOJ(HDU) 2136 Largest prime factor(素数筛选)
HDOJ(HDU) 2136 Largest prime factor(素数筛选)
89 0
|
Go
HDOJ(HDU) 1977 Consecutive sum II(推导、、)
HDOJ(HDU) 1977 Consecutive sum II(推导、、)
87 0