zoukankan      html  css  js  c++  java
  • [CF540D] Bad Luck Island

    [CF540D] Bad Luck Island - 概率

    Description

    给三种人,分别是r,s,p个,在孤岛上,每两个不同种人相遇则互吃,r吃s,s吃p,p吃r。求最后留下单一种族的概率。

    Solution

    考虑 (f[i][j][k]) 表示剩下 i 个 r,j 个 s,k 个 p 的概率(注意这里对概率的理解,此时样本空间为 i+j+k=C 的所有事件)

    转移就是随机抽两个不同人种出来打一架

    #include <bits/stdc++.h>
    using namespace std;
    
    #define int long long
    
    int r, s, p;
    
    double f[105][105][105];
    
    signed main()
    {
        ios::sync_with_stdio(false);
    
        cin >> r >> s >> p;
    
        f[r][s][p] = 1;
    
        double ar = 0, as = 0, ap = 0;
    
        for (int i = r; i >= 0; i--)
        {
            for (int j = s; j >= 0; j--)
            {
                for (int k = p; k >= 0; k--)
                {
                    if (i && j)
                        f[i][j - 1][k] += f[i][j][k] * i * j / (i * j + j * k + k * i);
                    if (j && k)
                        f[i][j][k - 1] += f[i][j][k] * j * k / (i * j + j * k + k * i);
                    if (k && i)
                        f[i - 1][j][k] += f[i][j][k] * k * i / (i * j + j * k + k * i);
                    if (i && !j && !k)
                        ar += f[i][0][0];
                    if (!i && j && !k)
                        as += f[0][j][0];
                    if (!i && !j && k)
                        ap += f[0][0][k];
                }
            }
        }
    
        cout << fixed << setprecision(10) << ar << " " << as << " " << ap << endl;
    }
    
  • 相关阅读:
    个人作业——软件评测
    软件工程实践2019第五次作业
    18年今日头条笔试第一题题解:球迷(fans)
    游戏2.1版本
    游戏2.0版本 代码
    游戏2.0版本
    改进版游戏代码
    改进版游戏
    2017.1.13之审判日
    找朋友 的内存超限代码
  • 原文地址:https://www.cnblogs.com/mollnn/p/14470195.html
Copyright © 2011-2022 走看看