![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
期望&概率dp
stargazer.
夜を穿つの
展开
-
【洛谷 P4564】 【CTSC2018】假面(概率DP)
传送门简单概率dpdpdp第二问对每个人维护每个血量的概率即可第一个问题考虑dpdpdp出g[j]g[j]g[j]表示剩下jjj个人活着的概率这个可以很简单的dpdpdp出来然后每个人xxx被困住的概率就是P(x活着)∗∑ig′[i]i+1P(x活着)*\sum_{i}\frac {g'[i]}{i+1}P(x活着)∗∑ii+1g′[i]这里g′g'g′是对除xxx其他人dpdp...原创 2020-02-10 19:44:22 · 173 阅读 · 0 评论 -
【洛谷 P3772】[CTSC2017]游戏(矩阵乘法+线段树)
传送门洛谷题解区牛逼啊一个贴的cz_ xuyixuancz \_ \ xuyixuancz_ xuyixuan的,一个贴的DZYODZYODZYO的为了发题解连亲妈都不要了吗?首先显然考虑每个位置赢的概率问题在于一个位置输赢的概率不只要考虑前面的还要考虑造成下一个胜负确定位置的影响参考给出的贝叶斯公式P(xi=1∣xr,xl)=P(xl,xr∣xi)P(xi...原创 2019-12-18 22:04:15 · 205 阅读 · 0 评论 -
【LOJ #6433】「PKUSC2018」最大前缀和(状压DP)
传送门也挺傻逼的nnn很小考虑如果暴力计算每种前缀的集合为最大前缀和的答案需要满足剩下的组成的任意前缀和都小于0g[s]g[s]g[s]表示集合sss排列出来任意前缀和都小于0的方案数类似考虑一个集合作为最大前缀和把这个序列反过来则一定不存在前缀和小于0也可以类似的定义一个fff来做注意最大前缀和不能不选,所以fff如果集合的和小于0也是合法的,只是不能继续转移注意一段和为0...原创 2019-12-18 21:12:47 · 169 阅读 · 0 评论 -
【省选模拟】—猎人杀(概率dp)
和加特林轮盘赌差别不大(虽然我没做过……)考场上想了一个利用树状图转移的n3n^3n3做法但是觉得写不出来就没做…实际上可以很简单的列出dpdpdp式f[i][j]f[i][j]f[i][j]表示剩iii个人,第jjj个人活下来的概率f[i][j]=(f[i−1][j−1]+f[i][j−k])/2f[i][j]=(f[i-1][j-1]+f[i][j-k])/2f[i][j]=(f[i...原创 2019-04-05 20:30:31 · 200 阅读 · 0 评论 -
【BZOJ2878】【NOI2012】—迷失游乐园(基环树期望dp)
传送门考虑没有环的时候怎么做之前做过一次类似的简单题,只不过是有向图考虑无向图的时候记录一个sis_isi表示iii向儿子走的期望长度,downidown_idowni表示向儿子走的长度之和downu=∑v=sonusv+vale,su=downusonudown_u=\sum_{v=son_u}s_{v}+val_e,s_u=\frac{down_u}{son_u}downu=v=...原创 2019-03-30 19:33:53 · 177 阅读 · 0 评论 -
【洛谷P5249】【LnOI2019】—加特林轮盘赌(概率dp)
传送门手动消元令f[i][j]f[i][j]f[i][j]表示还剩iii个人,第jjj个人最后活下来的概率显然f[i][j]=p0∗f[i−1][j−1]+(1−p0)∗f[i][j−1]f[i][j]=p0*f[i-1][j-1]+(1-p0)*f[i][j-1]f[i][j]=p0∗f[i−1][j−1]+(1−p0)∗f[i][j−1]发现这个是带环的,但是所有人概率加起来显然是等于...原创 2019-04-03 22:03:46 · 307 阅读 · 0 评论 -
【BZOJ3566】—概率充电器(树形+概率dp)
传送门简单dpdpdp考虑到充的上电的概率不好求求出每个点充不上点的概率减一下就完了令f[i]f[i]f[i]表示iii的儿子们没法给自己充电或自己没电的概率g[i]g[i]g[i]表示iii的父亲没法给自己充电的概率h[i]h[i]h[i]表示iii没法给父亲充电的概率那显然h[i]=f[i]+(1−f[i])∗pi,faih[i]=f[i]+(1-f[i])*p_{i,fa_i}...原创 2019-03-25 09:08:51 · 142 阅读 · 0 评论 -
【BZOJ1076】【SCOI2008】—奖励关(期望+状压dp)
传送门考虑到当前选的物品会对后面决策产生影响,不好处理选还是不选,所以考虑从后往前递推f[i][sta]f[i][sta]f[i][sta]表示第iii轮,已选的状态为stastasta时,后面最多可以得到的价值然后就是简单题了#include<bits/stdc++.h>using namespace std;#define ll long long#define re...原创 2019-02-16 20:38:38 · 161 阅读 · 0 评论