二分搜索 (高精度)

HDU 2199

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<cmath>
#include<algorithm>
using namespace std;

#define N 510
#define INF 0x3f3f3f3f
#define MIN 0.00000001
#define s 0.0000001
typedef long long LL;

int a[N], b[N], c[N], sum[N*N];

double js(double x)
{
    return 8*x*x*x*x+7*x*x*x+2*x*x+3*x+6;
}

int main()
{
    int T;
    double y;
    scanf("%d", &T);

    while(T--)
    {
        scanf("%lf", &y);
        double l, r, mid;
        l=0, r=100;
        if(js(0)>y || js(100)<y)
            printf("No solution!\n");
        else
        {
            while(r-l>s)
            {
                mid=(l+r)/2;
                if(js(mid)>y)
                    r=mid+MIN;
                else if(js(mid)<y)
                    l=mid-MIN;
            }
            printf("%.4f\n", (l+r)/2);
        }
    }
    return 0;
}
时间: 2024-10-31 23:42:45

二分搜索 (高精度)的相关文章

二分搜索之C++实现

二分搜索之C++实现 一.源代码:BinarySearch.cpp 1 #include<iostream> 2 using namespace std; 3 4 /*定义输出一维数组的函数*/ 5 void print(int array[], int n) 6 { 7 for (int i = 0; i < n; i++) 8 { 9 cout << array[i] << " "; 10 } 11 cout << endl;

hdu 5718 Oracle 高精度

Oracle Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem Description There is once a king and queen, rulers of an unnamed city, who have three daughters of conspicuous beauty. The youngest and most beautifu

问题 A: 【高精度】被限制的加法

问题 A: [高精度]被限制的加法 时间限制: 1 Sec  内存限制: 16 MB提交: 56  解决: 30[提交][状态][讨论版] 题目描述 据关押修罗王和邪狼监狱的典狱长吹嘘,该监狱自一千年前建成以来,尚未有一个囚犯能够成功地越狱.当然这应该要归功于对囚犯们严格的信息管制,例如囚犯们虽然可以自由地使用计算机,但计算机的内存被密码锁设置为仅有100KB大小,显然,在这小得可怜的内存上想编程进行任何大规模的魔法运算,几乎是不可能完成的任务.但修罗王信奉的格言是“一切皆有可能!”,为了破解掉

HDU 2199 Can you solve this equation?(二分搜索)

题目链接 Problem Description Now,given the equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and 100;Now please try your lucky. Input The first line of the input contains an integer T(1<=T<=100) which means the number of

大数相乘-高精度乘法

一.算法简要描述 给定两个数,相乘如何得到高精度的结果,给定的两个数,不确定是不是浮点数,即可能一个数带多位小数,另一个带小数,或者两个数都带多位小数,或都不带小数,针对这些情况,程序应该都要考虑,所谓的高精度其实就是看两个数的小数位有多少,那么其结果的小数位数应该为两数小数位数之和. 二.算法思路 针对上述描述,其实大部分思路首先想到的应该是用字符串来表示这两个数,带小数点和不带小数点最终都可转换成类似于两个大整数相乘的情况,在最后考虑把小数点放到结果的合适位置即可 三.算法代码 /* two

如何构建高精度室内定位系统

高精度室内定位需要的技术 室内GIS展示 室内导航技术 高精度定位传感器 高精度定位算法 平面gis 的三维转换技术 6.  平台网络管理 这里的关键是高精度定位传感技术. 可定位的方式gps,北斗gps,蓝牙,空间定位算法

北大ACM2456——Aggressive cows~~二分搜索

这一题,也是简单的二分搜索,求解放置的牛之间的距离尽可能远,也就是最大化最小值. 主要的一步就是将第i头牛放在了x[j]的位置中,第i + 1 头牛就要放在满足x[j] + d < x [k],k的最小值. 下面是AC的代码: #include <iostream> #include <algorithm> using namespace std; int N, M; int X[100005]; bool C(int x) { int last = 0; for(int i

【贪心专题】POJ 3258 River Hopscotch (最大化最小值 贪心+二分搜索)

链接:click here~~ [题意] 一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L,河中有n块石头,每块石头到S都有唯一的距离,,现在要你移除其中的m块,使得具有最小间距的相邻两块石头之间的距离最大. [解题思路] 又是一道经典的二分搜索,跟前一道一样的思路,不过要注意的是:此题是移除其中的元素,从而达到最大化的最小值. 代码: #include <stdio.h> #include <string.h> #include <

NYOJ306 走迷宫(dfs+二分搜索)

题目描述 http://acm.nyist.net/JudgeOnline/problem.php?pid=306 Dr.Kong设计的机器人卡多非常爱玩,它常常偷偷跑出实验室,在某个游乐场玩之不疲.这天卡多又跑出来了,在SJTL游乐场玩个不停,坐完碰碰车,又玩滑滑梯,这时卡多又走入一个迷宫.整个迷宫是用一个N * N的方阵给出,方阵中单元格中填充了一个整数,表示走到这个位置的难度. 这个迷宫可以向上走,向下走,向右走,向左走,但是不能穿越对角线.走迷宫的取胜规则很有意思,看谁能更快地找到一条路