二分搜索 (高精度)

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; }

 

posted on 2016-05-14 20:09  南风丶丶  阅读(177)  评论(0编辑  收藏  举报