CF 540D Bad Luck Island

一看就是DP题(很水的一道紫题)

\(dp[i][j][k]\)为留下\(i\)\(r\)族的人,死去\(j\)\(s\)族的人,死去\(k\)\(p\)族的人的概率(跟其他的题解有点差别,但本质相同)。

#include <bits/stdc++.h>
using namespace std;
double dp[101][101][101];
int a, b, c;
int main() {
    scanf("%d%d%d", &a, &b, &c);
    for (int i = 1; i <= 100; i++)
        for (int j = 1; j <= 100; j++) {
            dp[i][j][0] = 1;
            for (int k = 1; k <= 100; k++)
                dp[i][j][k] += (i * j * dp[i][j - 1][k] + j * k * dp[i][j][k - 1] + k * i * dp[i - 1][j][k]) / (i * j + j * k + k * i);
        }
    printf("%.12lf %.12lf %.12lf\n", dp[a][b][c], dp[b][c][a], dp[c][a][b]);
    return 0;
}
posted @ 2019-05-04 09:54  Trimsteanima  阅读(145)  评论(0编辑  收藏  举报
Live2D