luogu CF77B Falling Anvils |數學

给定实数\(a, b(0\le a, b\le 10^6)\),求方程\(x^2+\sqrt px +q\)

有至少一个实根的概率,其中\(p\in [0, a], q\in [-b, b]\)\(p, q\)均是实数,在上述区间内等概率分布。

多组数据,\(T\le 10000\)


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define db double
signed main(){
	int T; cin>>T;
	db a,b;
	while(T--){
		cin>>a>>b;
		if(b==0){ printf("1\n"); continue; };
		if(a==0){ printf("0.5\n"); continue; }
		db S;
		if(4*b>=a)S=a*a/8.0;
		else S=((a-4*b+a)*b)/2.0;
		S+=a*b;
		printf("%.10lf\n",S/(a*b*2.0));
	}
}

posted @ 2020-04-12 16:08  白木偶君  阅读(110)  评论(0)    收藏  举报