给定实数\(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));
}
}
luogu CF77B Falling Anvils |數學
原文:https://www.cnblogs.com/naruto-mzx/p/12685901.html