(概率dp/遞推)Bad Luck Island CodeForces - 540D

https://blog.csdn.net/mengxiang000000/article/details/69193806

題目大意:

現(xiàn)在有石頭r人锣光,剪刀s人,布p人.

每次會(huì)有兩個(gè)不同陣營(yíng)的人見(jiàn)面惑畴,然后一個(gè)人可能會(huì)出局辐棒。

問(wèn)最終三個(gè)隊(duì)獲勝的幾率。

一個(gè)隊(duì)獲勝意味著其他隊(duì)的人都死了秕噪。

思路:

觀察到r钳降,s,p均小于100.那么很明顯巢价,設(shè)定dp【i】【j】【k】表示石頭還剩下i人牲阁,剪刀還剩下j人固阁,布還剩下k人的幾率。

那么就有:

①dp【i-1】【j】【k】+=dp【i】【j】【k】*這種情況的概率城菊;

②dp【i】【j-1】【k】+=dp【i】【j】【k】*這種情況的概率备燃;

③dp【i】【j】【k-1】+=dp【i】【j】【k】*這種情況的概率;

即遞推出所有相遇的情況
很明顯凌唬,三種情況的概率分別為:

①ik/(ij+jk+ik)并齐;石頭和布一起出現(xiàn)的時(shí)候,石頭才可能死一個(gè)人客税。

②ij/(ij+jk+ik)况褪;石頭和剪子一起出現(xiàn)的時(shí)候,剪子才可能死一個(gè)人更耻。

③jk/(ij+jk+ik)测垛;剪子和布一起出現(xiàn)的時(shí)候,布才可能死一個(gè)人秧均。

那么過(guò)程維護(hù)一下dp數(shù)組食侮,注意三層for的枚舉方向即可。

代碼:

#include<algorithm>
#include <iostream>
#include  <cstdlib>
#include  <cstring>
#include  <cassert>
#include   <cstdio>
#include   <vector>
#include   <string>
#include    <cmath>
#include    <queue>
#include    <stack>
#include      <set>
#include      <map>
using namespace std;
#define P(a,b,c) make_pair(a,make_pair(b,c))
#define rep(i,a,n) for (int i=a;i<=n;i++)
#define per(i,a,n) for (int i=n;i>=a;i--)
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define pb push_back
#define mp make_pair
#define fi first
#define se second
//#define INF 0x3f3f3f3f
typedef pair<int,pair<int,int> >pii;//注意空格呦目胡! 
typedef long long ll;
const ll mod = 1000000007;
ll gcd(ll a, ll b) { return b ? gcd(b, a%b) : a; }
const int INF=0x7f7f7f7f;
const int maxn = 1e5+5;

double dp[105][105][105];
double cal(int a,int b,int c)
{
    double aa=(double)a;
    double bb=(double)b;
    double cc=(double)c;
    if(aa*bb+bb*cc+cc*aa==0)return 0;
    else
    {
        return  (aa*bb)/(aa*bb+bb*cc+cc*aa);
    }
}
int main()
{
    int r,s,p;
    while(~scanf("%d%d%d",&r,&s,&p))
    {
        memset(dp,0,sizeof(dp));
        dp[r][s][p]=1;
        per(i,0,r)
        {
            per(j,0,s)
            {
                per(k,0,p)
                {
                    if(i-1>=0)dp[i-1][j][k]+=dp[i][j][k]*cal(i,k,j);
                    if(j-1>=0)dp[i][j-1][k]+=dp[i][j][k]*cal(i,j,k);
                    if(k-1>=0)dp[i][j][k-1]+=dp[i][j][k]*cal(j,k,i);
                }
            }
        }
        double a,b,c;
        a=0;b=0;c=0;
        for(int i=0;i<=r;i++)a+=dp[i][0][0];
        for(int i=0;i<=s;i++)b+=dp[0][i][0];
        for(int i=0;i<=p;i++)c+=dp[0][0][i];
        printf("%.12lf %.12lf %.12lf\n",a,b,c);
    }
    
    return 0;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锯七,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子誉己,更是在濱河造成了極大的恐慌眉尸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巨双,死亡現(xiàn)場(chǎng)離奇詭異噪猾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)炉峰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門畏妖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人疼阔,你說(shuō)我怎么就攤上這事戒劫。” “怎么了婆廊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵迅细,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我淘邻,道長(zhǎng)茵典,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任宾舅,我火速辦了婚禮统阿,結(jié)果婚禮上彩倚,老公的妹妹穿的比我還像新娘。我一直安慰自己扶平,他們只是感情好帆离,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著结澄,像睡著了一般哥谷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上麻献,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天们妥,我揣著相機(jī)與錄音,去河邊找鬼勉吻。 笑死监婶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的齿桃。 我是一名探鬼主播压储,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼源譬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起孕似,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤踩娘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后喉祭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體养渴,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年泛烙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了理卑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蔽氨,死狀恐怖藐唠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹉究,我是刑警寧澤宇立,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站自赔,受9級(jí)特大地震影響妈嘹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绍妨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一润脸、第九天 我趴在偏房一處隱蔽的房頂上張望柬脸。 院中可真熱鬧,春花似錦毙驯、人聲如沸倒堕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)涩馆。三九已至,卻和暖如春允坚,著一層夾襖步出監(jiān)牢的瞬間魂那,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工稠项, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涯雅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓展运,卻偏偏與公主長(zhǎng)得像活逆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拗胜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • A - 數(shù)字三角形題解:假設(shè)getMax(i,j)表示點(diǎn)(i,j)到底部的最長(zhǎng)路徑,那么getMax(i,j)=m...
    Gitfan閱讀 876評(píng)論 0 0
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)蔗候。 張土汪:刷leetcod...
    土汪閱讀 12,744評(píng)論 0 33
  • 看到項(xiàng)目群里彈出的下月初全體成員集合開(kāi)會(huì)的消息,我不由得一陣激動(dòng)埂软。 一整個(gè)夏天都在忙這個(gè)項(xiàng)目锈遥,每天大量的閱讀查找資...
    靜心_溫柔以待閱讀 141評(píng)論 0 0
  • 薛兆豐經(jīng)濟(jì)學(xué)041 | 世上有哪些競(jìng)爭(zhēng) 本篇開(kāi)始一個(gè)新的單元,講競(jìng)爭(zhēng)的規(guī)律勘畔,開(kāi)始講視角擴(kuò)展到人與人之間的競(jìng)爭(zhēng)所灸。 ...
    白洲筆記閱讀 960評(píng)論 0 1
  • 深夜,樓道里幽幽的燈光投射進(jìn)來(lái)炫七,被夢(mèng)魘著的畫(huà)面猶在眼前爬立,趴在被窩里手里握著奶奶給扎的挑木,不敢閉眼万哪。往昔的那些人侠驯,...
    白沐冉閱讀 309評(píng)論 1 0