码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces Looksery Cup 2015 H Degenerate Matrix 二分 注意浮点数陷阱

时间:2017-05-27 14:25:15      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:注意   gen   浮点   cstring   cin   code   matrix   rac   main   

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <iostream>
using namespace std;
bool fun(double l1,double r1,double l2,double r2){
	return (l1 <= r2 && l1 >= l2) || (l2 >= l1 && l2 <= r1);
}
int main() {
    double a,b,c,d;
    cin >> a >> b >> c >> d;
    
    double r = 1000000000.0;
    double l = 0;
    
    for(int i = 0;i < 1000;i++){

    	double m = l + (r - l) /2.0;
    	double a1 = (a-m)*(d-m);
    	double a2 = (a-m)*(d+m);
    	double a3 = (a+m)*(d-m);
    	double a4 = (a+m)*(d+m);
    	double l1 = min(min(a1,a2),min(a3,a4));
    	double r1 = max(max(a1,a2),max(a3,a4));
    	a1 = (c-m)*(b-m);
    	a2 = (c-m)*(b+m);
    	a3 = (c+m)*(b-m);
    	a4 = (c+m)*(b+m);
    	double l2 = min(min(a1,a2),min(a3,a4));
    	double r2 = max(max(a1,a2),max(a3,a4));
	if(fun(l1,r1,l2,r2)){
    	    r = m; 
    	}
    	else{
    	    l = m;
    	}
    }
    printf("%.10f\n",l);
    return 0;
    
}

codeforces Looksery Cup 2015 H Degenerate Matrix 二分 注意浮点数陷阱

标签:注意   gen   浮点   cstring   cin   code   matrix   rac   main   

原文地址:http://www.cnblogs.com/yutingliuyl/p/6912540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!