码迷,mamicode.com
首页 > 其他好文 > 详细

【CodeForces】698 C. LRU

时间:2018-01-05 16:06:42      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:表示   ref   转化   nbsp   http   状态   lru   body   codeforce   

【题目】C. LRU

【题意】给定空间为k的背包和n个物品,每次每个物品有pi的概率加入(Σpi=1),加入时若发现背包中已有该物品则不改变,若背包满k个物品后再加入新物品则弹出最早加入的物品,求加入10^100次后每个物品在背包中的概率。n,k<=20

【算法】概率DP

【题解】进行10^100次加入后背包一定是满的且是最后加入的k个物品,所以问题转化为在空背包中加入物品至满,各个物品在背包中的概率。

设f[S]表示背包中的物品状态为S的概率,最后只需要统计恰好k个1的状态对物品的贡献即可。

根据全概率公式,P(A)=ΣP(Bi)*P(A|Bi),有:

f[S]=Σf[S-2^(j-1)]*p[j]+f[S]*Σp[j],S&2^(j-1)=1

移项得f[S]=Σf[S-2^(j-1)]*p[j]/sum

 

【CodeForces】698 C. LRU

标签:表示   ref   转化   nbsp   http   状态   lru   body   codeforce   

原文地址:https://www.cnblogs.com/onioncyc/p/8203445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!