Codeforces - 80D. Falling Anvils - 數學

Falling Anvils

題目鏈接

分類geometry probabilities

1.題意概述

  • 給你一個一元二次方程x2+px+q=0 ,再告訴你p[0,a]q[b,b] ,問你這樣情況下,這個方程有實數根的概率。

2.解題思路

  • 這題一元二次方程有實數解,則p4q0p4q ,而根據可行區域我們可以在座標軸上畫出這個取值的矩形區域,再畫出p=4q 這條直線,這條直線會把這塊矩形區域切割成兩部分,其中一側就滿足p4q ,概率就是這塊區域的面積比上總面積,是高中的一道簡單的線性規劃問題。

3.AC代碼

int t;
scanf("%d", &t);
while (t--) {
    int a, b;
    scanf("%d%d", &a, &b);
    if (a == 0 && b == 0)
        puts("1");
    else if (4 * b > a) printf("%.6f\n", 0.5 + (1.0 * a) / (16 * b));
    else printf("%.6f\n", 1.0 - (1.0 * b) / a);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章