首页 > 代码库 > codeforces Looksery Cup 2015 H Degenerate Matrix 二分 注意浮点数陷阱
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\n",l); return 0; }
codeforces Looksery Cup 2015 H Degenerate Matrix 二分 注意浮点数陷阱
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。