1. 程式人生 > >[COGS1487]麻球繁衍(概率dp)

[COGS1487]麻球繁衍(概率dp)

題目描述

傳送門

題解

f(i)表示開始有1只麻球,i天之後全部死亡的概率。由全概率公式有

f(i)=P0+P1f(i1)+P2f(i1)2+P3f(i1)3+...+Pn1f(i1)n1
其中Pjf(i1)j的含義是這個麻球生了j個後代,它們在i-1天后全部死亡。注意這j個後代的死亡時獨立的,而每一死亡的概率都是f(i1),因此根據乘法原理,j個後代全部死亡的概率為f(i1)j。同理,由於一開始共有k只麻球,且各只麻球的死亡是獨立的,由乘法原理,最終答案是f(m)k

摘自劉汝佳《演算法競賽入門經典訓練指南》

程式碼

#include<iostream>
#include<cstring> #include<cstdio> #include<cmath> using namespace std; const int N=1005; int T,n,k,m; double p[N],f[N]; inline double fast_pow(double a,int p){ double ans=1; for (;p;p>>=1,a*=a) if (p&1) ans*=a; return ans; } int main(){ scanf
("%d",&T); for (int t=1;t<=T;++t){ scanf("%d%d%d",&n,&k,&m); for (int i=0;i<n;++i) scanf("%lf",&p[i]); memset(f,0,sizeof(f)); f[0]=0; f[1]=p[0]; for (int i=2;i<=m;++i) for (int j=0;j<n;++j) f[i]+=p[j]*fast_pow(f[i-1],j); printf
("Case #%d: %0.7lf\n",t,fast_pow(f[m],k)); } }

相關推薦

[COGS1487]繁衍概率dp

題目描述 傳送門 題解 f(i)表示開始有1只麻球,i天之後全部死亡的概率。由全概率公式有f(i)=P0+P1f(i−1)+P2f(i−1)2+P3f(i−1)3+...+Pn−1f(i−1)n−

[Codeforces Round #284 (Div. 1) B]Name That Tune概率Dp

題意 red return 聽歌識曲 blog 應該 n) mean begin Description It turns out that you are a great fan of rock band AC/PE. Peter learned that and

HDU 4405 Aeroplane chess概率dp

i++ 題意 clu esp ostream con mat 計算 stdin http://acm.hdu.edu.cn/showproblem.php?pid=4405 題意: 有個屌絲喜歡玩飛行棋,現在棋盤就編號為0~n,起點為0,終點為n,只要最後大於等於n就可

[POJ2151]Check the difficulty of problems概率DP

nbsp amp -1 get mem blank targe pre include 傳送門 每個隊之間是獨立的 f[i][j]表示當前隊伍前i個題答對j個的概率 滿足條件的概率 == 全部方案(除去答對0)的概率 - 不滿足條件的概率(每個隊伍答對1~n-1

【BZOJ】3191 [JLOI2013]卡牌遊戲概率dp

如果 style ++ bzoj mem color con size oid 題目 傳送門:QWQ 分析 算是概率dp不錯的題。 $ dp[i][j] $表示有i個人時,這i個人中的第j個獲勝的概率。 我們把i從1推到n,那麽答案就是$ dp[n

POJ - 2096 Collecting Bugs概率dp

軟件 tar 可以轉化 答案 一個bug 精度 ron 現在 pan https://vjudge.net/problem/POJ-2096 題意 一個軟件有s個子系統,會產生n種bug。某人一天發現一個bug,這個bug屬於某種bug,發生在某個子系統中。求找

HDU - 4405 Aeroplane chess概率dp

memset double The -s put mem first fine class Aeroplane chess Hzz loves aeroplane chess very much. The chess map contains N+1 grids

Dumb Bones UVA - 10529概率dp

print 需要 min set can eof 等於 正在 mod 題意: 你試圖把一些多米諾骨牌排成直線,然後推倒它們。但是如果你在放骨牌的時候不小心把剛放的骨牌碰倒了,它就會把相臨的一串骨牌全都碰倒, 而你的工作也被部分的破壞了。 比如你已經把骨牌擺成了DD__DxD

ZOJ 2949 Coins of Luck概率dp

【連結】http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1948 【題意】有一個蛋疼的人打算用投硬幣的方式決定吃A面還是B面,兩種面各有n包,投一次硬幣只吃一包,問到決定完為止投硬幣次數的數學期望 【思路】 數學期望這

HDU-1204 糖果大戰概率DP

題意 兩個人分別有 N,M N , M N,M 顆糖果,現在他們在玩 24

2018.11.09【UVA11021】Tribles概率DP不用全概率公式

傳送門 強烈譴責: 對於懂全概率公式的人來說這是一道水題。 然而就是這群懂全概率公式的人寫著一篇篇題解與程式碼不符的部落格。連遞推陣列 f

CodeForces - 258D:Little Elephant and Broken Sorting概率DP

題意:長度為n的排列,m次交換xi, yi,每個交換x,y有50%的概率不發生,問逆序數的期望  。n, m <= 1000 思路:我們只用維護大小關係,dp[i][j]表示位置i的數比位置j的數大的概率。 那麼每次交換x和y。  假設x<y,那麼區間就有三種: 

概率/dpP2059 [JLOI2013]卡牌遊戲

https://www.luogu.org/problemnew/show/P2059 第一次做概率dp的題,還以為要用組合數學知識去推公式 上次牛客也遇到概率dp的題,就忘了補題 考慮從1個人正推到n個人的情況,發現k個人的時候通過抽牌淘汰掉一個人之後能從k-1已經計算的狀態轉

CF148D. Bag of mice概率DP

D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes

UVA - 10648 Chocolate Box 概率dp

題目大意:       n個巧克力,放在m個盒子裡,問至少有一個盒子是空的概率 題解:      dp[i][j]表示i個巧克力放到j個盒子裡的概率      dp[i][j

【HDU4405】Aeroplane chess概率dp

題目連結 Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm

Scout YYF I POJ - 3744概率dp

Description YYF is a couragous scout. Now he is on a dangerous mission which is to penetrate into the enemy's base. After overcoming a series difficulti

牛客練習賽26 B.煙花概率DP

題目描述  小a有個煙花,每個煙花代表著互不相同的顏色,對於第個煙花,它有的概率點燃,現在小a要去點燃它們,他想知道產生顏色的期望個數 及 產生恰好產生種顏色的概率 輸入描述: 第一行兩個整數

Activation HDU - 4089概率dp

After 4 years' waiting, the game "Chinese Paladin 5" finally comes out. Tomato is a crazy fan, and luckily he got the first release. Now he is at home, r

poj 2151 Check the difficulty of problems概率DP

Organizing a programming contest is not an easy job. To avoid making the problems too difficult, the organizer usually expect the c