はまやんはまやんはまやん

hamayanhamayan's blog

Mice and Traitors(ネズミ達と裏切り者) [yukicoder No.787]

https://yukicoder.me/problems/no/787

解説

https://yukicoder.me/submissions/315634

条件付き確率で解く。
P,Qは÷100して確率にしておく。
答えはP(裏切り|裏切りっぽい)となるので、
 
P(裏切り|裏切りっぽい) = P(裏切り∩裏切りっぽい) / P(裏切りっぽい)
 
のようになり、
 
P(B|A) = P(A∩B) / P(A)
A := 裏切りっぽい
B := 裏切り

すると、
P(A∩B) = PQ
P(B) = PQ + (1-P)*(1-Q)
となる。
あとは、P(A∩B) / P(A)にして×100で%に直して答え。

double P, Q;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> P >> Q;
    P /= 100;
    Q /= 100;

    double AB = P * Q;
    double A = P * Q + (1 - P) * (1 - Q);
    double ans = AB / A * 100;

    printf("%.10f\n", ans);
}