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


    #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
    ",l);
        return 0;
        
    }

  • 相关阅读:
    ScrollView卷轴视图
    SharedPreferences数据存储
    progressBar进度条
    SeekBar拖动条
    TabWidget选择标签
    RadioGroupRadioButton
    SQLite数据操作
    Spinner
    .NET学习资源
    如何在局域网内其他机器访问我的asp.net网站?
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6912540.html
Copyright © 2020-2023  润新知