夏川的生日就要到了。作為夏川形式上的男朋友,季堂打算給夏川買一些生 日禮物。
商店裡一共有種禮物。夏川每得到一種禮物,就會獲得相應喜悅值wi(每種禮物的喜悅值不能重複獲得)。
每次,店員會按照一定的概率pi(或者不拿出禮物),將第i種禮物拿出來。 季堂每次都會將店員拿出來的禮物買下來。沒有拿出來視為什麼都沒有買到,也算一次購買。
眾所周知,白毛切開都是黑的。所以季堂希望最後夏川的喜悅值盡可能地高。
求夏川最後最大的喜悅值是多少,並求出使夏川得到這個喜悅值,季堂的期望購買次數。
第一行,乙個整數n,表示有n種禮物。
接下來n行,每行乙個實數pi和正整數wi,表示第i種禮物被拿出來的概率和 可以獲得喜悅值。
第一行,乙個整數表示可以獲得的最大喜悅值。
第二行,乙個實數表示獲得這個喜悅值的期望購買次數,保留3位小數。
對於10%的資料,n = 1
對於30%的資料,n ≤ 5
對於100%的資料,n ≤ 20,0 < wi ≤ 10^9 ,0 < pi ≤ 1且∑pi ≤ 1
注意:本題不設spj
#includeusing namespace std;
typedef long long ll;
const int maxn = 25;
const int max = 1 << 20;
double p[maxn];
double f[max];
int w[maxn];
ll sum;
int main()
int s = (1 << n) - 2;
for(int i = s;i >= 0;--i)
f[i] = (sum + 1) * 1.0 / sump;//剛才推導的式子
} printf("%lld\n%.3lf\n",sum,f[0]);
return 0;
}
概率DP初步
題目簡述 乙個r行c列的格仔,起始點在 1,1 終點在 r,c 每一步可能的走法有 不動 向右走 向下走,每走一步花費兩點魔法值,現給出在每一點三種走法的概率,求走完迷宮時所花魔法值的期望。分析 運用dp演算法的話,首先需要確定乙個合適狀態來描述子問題的情況,很明顯本題的狀態可以定義為dp i j ...
概率dp入門
概率dp主要用於求解期望 概率等題目。轉移方程有時候比較靈活。一般求概率是正推,求期望是逆推。通過題目可以體會到這點。poj2096 collecting bugs include include include include include typedef long long ll using ...
骰子 概率dp
因為會有人被彈出佇列,所以我設定的期望dp為 於是有當只剩乙個人的時候,那個人必勝,再往下,先看它在隊首的情況,其他的情況呢,也就是不在隊首的時候呢,於是,連立這兩個方程組,可以得到 所以,就可以利用乙個pow來處理double型來解決這個問題了。include include include in...