bzoj 1426: 收集郵票【期望dp】
我太菜了,看的hzwer的blog才懂
大概是設f[i]表示已經擁有了i張郵票後期望還要買的郵票數,這個轉移比較簡單是f[i]=f[i](i/n)+f[i+1]((n-i)/n)+1
然後設g[i]為還需要的錢,可以把轉移看做每張票都比前面的貴1元,就是g[i]=((n-i)/n)(g[i+1]+f[i+1])+(i/n)(g[i]+f[i])+1
#include<iostream> #include<cstdio> using namespace std; const int N=1000005; double n,f[N],g[N]; int main() { scanf("%lf",&n); for(int i=n-1;i>=0;i--) f[i]=f[i+1]+n/(n-i); for(int i=n-1;i>=0;i--) g[i]=g[i+1]+f[i+1]+(n*i)/((n-i)*n)*f[i]+n/(n-i); printf("%.2lf",g[0]); return 0; }
bzoj 1426: 收集郵票【期望dp】
相關推薦
bzoj 1426: 收集郵票【期望dp】
std turn 期望 const log n) -i str amp 我太菜了,看的hzwer的blog才懂 大概是設f[i]表示已經擁有了i張郵票後期望還要買的郵票數,這個轉移比較簡單是f[i]=f[i](i/n)+f[i+1]((n-i)/n)+1 然後設g[i]為還
BZOJ 1426--收集郵票(概率與期望&DP)
不同 include online 沒有 收集 pass main 數字 bzoj 1426: 收集郵票 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 504 Solved: 417[Submit][Status][D
【期望Dp】【bzoj1426】: 收集郵票
題目的連結 Description 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1/n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付
bzoj 4720: [Noip2016]換教室【期望dp】
zoj can 期望dp getchar [1] using main urn || 狀壓dp,設f[i][j][0/1]為前i個時間段換了j間教室的期望體力消耗,轉移很好想(但是寫起來好長= =) #include<iostream> #include<
BZOJ 3036 綠豆蛙的歸宿【拓撲排序】【期望DP】
直接反圖+拓排然後跑一遍概率DP #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #inclu
BZOJ 1419 Red is good【期望DP】
f[i][j]f[i][j]f[i][j]表示選了iii張紅牌,jjj張黑牌的最優期望得分。 那麼接下來,有ii+j\frac{i}{i+j}i+ji的可能+1分,有ji+j\frac{j}{i+j}i+jj的可能-1分,所以不難寫出狀態轉移方程: f[i]
BZOJ 1076 [SCOI2008]獎勵關【狀態壓縮】【期望DP】
基於hzwer的部落格。 lim[i]lim[i]lim[i]表示可以獲得iii得前提。 考慮倒推,當前狀態的期望=(上一個狀態的期望+這次得到的價值)/概率 #include <bits/stdc++.h> #define db double #d
BZOJ 1426 收集郵票 概率DP
題目描述 Description 有n種不同的郵票,皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那裡購買,每次只能買一張,並且買到的郵票究竟是n種郵票中的哪一種是等概率的,概率均為1/n。但是由於凡凡也很喜歡郵票,所以皮皮購買第k張郵票需要支付k元錢。
BZOJ 1026 windy數【數位DP】
ctype ret += pac rst true bug ring fine 1026: [SCOI2009]windy數 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 10142 Solved: 4712[Subm
HDU4624 Endless Spin 【最大最小反演】【期望DP】
its eof 期望dp bre \n include ace -s while 題目分析: 題目是求$E(MAX_{i=1}^n(ai))$, 它等於$E(\sum_{s \subset S}{(-1)^{|s|-1}*min(s))} = \sum_{s \subset
bzoj 1068: [SCOI2007]壓縮【區間dp】
strlen class char s 合並 pre printf () d+ pri 神區間dp 設f[l][r][0]為在l到r中壓縮的第一個字符為M,並且區間內只有這一個M,f[l][r][0]為在l到r中壓縮的第一個字符為M,並且區間內有兩個及以上的M 然後顯然的轉
[BZOJ1426]收集郵票(期望 DP)
Address 洛谷 P4550 BZOJ 1426 Solution 先定義狀態 f [
BZOJ P1068 [SCOI2007]壓縮【區間DP】
#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #defin
洛谷P4316 綠豆蛙的歸宿【期望DP】
時空限制 1000ms / 128MB 題目描述 給出一個有向無環圖,起點為1終點為N,每條邊都有一個長度,並且從起點出發能夠到達所有的點,所有的點也都能夠到達終點。綠豆蛙從起點出發,走向終點。 到達每一個頂點時,如果有K條離開該點的道路,綠豆蛙可以選擇任意一條
BZOJ 1334 [Baltic2008]Elect【揹包DP】
這是一道01揹包。 我們先來翻譯題目限制: 我們選擇的人數總數>原來的人數總數/2 我們選擇的人數總數-我們選擇的人數最少的政黨的人數≤\leq≤原來的人數總數/2 所以我們考慮將人數從大到小排序,然後正常做01揹包,中間判斷一下最少的政黨的人數是
BZOJ 4247 掛飾【揹包DP】
貪心的想法:在保證正確性的情況下儘量多的掛鉤。 所以我們先把每個掛飾按照掛鉤數量從大到小排序。 f[i][j]f[i][j]f[i][j]表示排序後的前iii個物品在有jjj個掛鉤的情況下的最大價值之和。 那麼對於第iii個物品,無非就是選擇與否的關係,樸素的轉
LIghtOJ1038---Race to 1 Again【期望dp】
題意:一個整數n每次除以他的因子求除以到1時的期望次數。 t=10000,100000>=n>=1肯定要打表的。 dp【50】=(dp【1】+dp【2】+dp【5】+dp【10】+dp【25】+dp【50】)/6+1。1是貢獻的次數1。 按這個方程打表即可。
LightOJ 1038 Race to 1 Again 【期望dp】
思路: 首先要知道一個期望公式:E3 = (E1+1)/3 + (E2 + 1)/3 + (E3 +1)/3 ; 這個公式中的E3要根據題意來判斷是否加入;比如這題求的是一個數被除的情況是有自己除自己的,所以總的期望還要包含自己本身的期望;又如求一個人的移動期望,如果存
bzoj 2331: [SCOI2011]地板【插頭dp】
一開始設計了四種狀態,多了一種已經拐彎但是長度為0的情況,後來發現不用,設012表示沒插頭,沒拐彎的插頭,拐了彎的插頭,然後轉移的話12,21,22都不合法,剩下的轉移腦補一下即可,ans只能在11,02,20取,別的都不是合法結束狀態 #include<iostream> #include&l
【期望dp】Lightoj 1027 A Dangerous Maze
一道很好的概率期望題目,沒用到dp不過,再次理解了統計平均(期望E) /* light_oj 1027 期望DP 並沒有什麼遞推 題意: n個傳送門,m個可以逃離,其他的 求解: