期望DP
文章平均质量分 67
issue是fw
19 years old, struggling in life, chasing daydreams.
展开
-
AtCoder Beginner Contest 215 G - Colorful Candies 2(期望,根号复杂度)
LINK单独考虑每一类颜色糖果的期望即可比如当选出kkk个糖果时,第iii类糖果有xix_ixi个那么没有选到这类糖果的概率是∏j=0k−1n−j−xin−j\prod\limits_{j=0}^{k-1}\frac{n-j-x_i}{n-j}j=0∏k−1n−jn−j−xi,选到的概率取个反即可设共有www类糖果,选出kkk个的期望颜色数就是∑i=1w(1−∏j=0k−1n−j−xin−j)\sum\limits_{i=1}^w(1-\prod\limits_{j=0}^{k-1}\fr原创 2021-09-15 13:01:17 · 318 阅读 · 0 评论 -
1523 E - Crypto Lights(期望+组合数学思维)
LINK题意nnn盏熄灭的灯,每次操作在熄灭的灯随机选择一盏灯打开当任意连续kkk个灯至少有222盏灯被打开游戏结束求游戏结束的期望操作次数。对于一个打开www盏灯结束游戏的方案,考虑分别计算它的www次贡献分别是第1,2,...w1,2,...w1,2,...w次打开灯的贡献基于这样的思想,我们考虑枚举一个ppp表示当前点亮了ppp盏灯考虑计算此时游戏没有终止的方案数记作fff那么对期望的贡献即为f∗p!n∗(n−1)...∗(n−p+1)f*\frac{p!}{n*(n-1)...原创 2021-06-03 20:10:42 · 420 阅读 · 0 评论 -
P4492 [HAOI2018]苹果树(组合数学+递推)
LINK一颗苹果树长nnn天,第一天长出根节点,每个节点有左右两个分支以后每一天,在这棵树的所有分支处随机选择一个,长出一个新节点定义这个树的不便度为树上两两节点的距离和EEE,输出答案E∗n!E*n!E∗n!对PPP取余求期望EEE,需要知道方案数和所有方案造成的总贡献总方案数是n!n!n!,因为每次加入节点会抹掉一个分支,同时加入两个分支那么所求答案就是总贡献了,因为n!n!n!刚好是总方案数不可能知道树的所有形态,考虑对边单独计算贡献在一颗确定的树中,一条边期望被经过siz[u]∗(原创 2021-03-30 15:12:26 · 247 阅读 · 0 评论 -
2019南京网络赛 Robots(期望dp)
LINK题意一张有向无环图,你从111号点出发每天会随机走相邻的点或停在当前格子,花费为当前已走天数求到达nnn号点的期望花费。要知道花费,就必须知道当前是第几天,这显然是不现实的。不妨定义f[i]f[i]f[i]表示当前在点iii,到达nnn还需要的期望天数再定义g[i]g[i]g[i]表示当前再点iii,到达nnn的期望花费设iii有k−1k-1k−1个点可以转移,那么有转移方程f[i]=1k∗∑(i,v)f[v]+1k∗f[i]+1f[i]=\frac{1}{k}*\sum\lim原创 2021-03-23 15:56:43 · 223 阅读 · 0 评论 -
牛客挑战赛48 B.心跳调试(概率递推)
LINK设现在[1,i][1,i][1,i]已经成功入栈,栈顶是iii那么下一个入栈的不同数字是i+1i+1i+1的概率有多大??设成功转移的概率是yyy设下一次拿到iii概率是k1k_1k1,拿到i+1i+1i+1概率是k2k_2k2y=k2+k1∗yy=k_2+k_1*yy=k2+k1∗y解得y=k21−k1y=\frac{k_2}{1-k_1}y=1−k1k2这样就可以开始递推。#include <bits/stdc++.h>using namespace s原创 2021-03-20 19:45:12 · 304 阅读 · 0 评论 -
UVA10529 Dumb Bones(区间期望dp??)
LINK定义f[i][j]f[i][j]f[i][j]表示区间[i,j][i,j][i,j]中的牌都摆放完成的最小期望次数每次枚举一个端点kkk放在这里设往左边倒的概率是p1p_1p1,往右边倒的概率是p2p_2p2,不倒的概率是p3p_3p3f[i][j]=p1∗(2∗f[i][k−1]+f[k+1][j]+1)+p2∗(2∗f[k+1][j]+f[i][k−1]+1)+p3∗(f[i][k−1]+f[k+1][j]+1)f[i][j]=p_1*(2*f[i][k-1]+f[k+1][j]原创 2021-03-16 14:25:55 · 252 阅读 · 0 评论 -
E - Football(期望dp+二进制)
LINK2n2^n2n支球队,进行nnn场比赛对于每场比赛,存活下来的队伍按照编号递增的顺序站成一排第一支队伍和第二支打,第三支队伍和第四支队伍打…一此类推nnn场比赛后只有一个队伍会取胜,你只需要输出最可能获得胜利的那支队伍即可。定义f[i][j]f[i][j]f[i][j]表示第iii轮第jjj个人存活下来的概率设jjj在这一轮可能和x1,x2...xkx_1,x_2...x_kx1,x2...xk打f[i][j]=1k∗∑l=1kf[xl][j−1]f[i][j]=\frac{1原创 2021-03-16 13:01:29 · 244 阅读 · 0 评论 -
lightoj A Dangerous Maze (II) 1395 (期望dp)
LINK有nnn扇门,第iii扇门,若xi>0x_i>0xi>0可以在xix_ixi分钟后走出迷宫若xi<0x_i<0xi<0,花费−xi-x_i−xi的时间重新做出选择你不会选择最近kkk次走过的门问逃出去的期望首先最近kkk次的门不会是可以出去的门,否则直接出去了都那么只可能是重新做选择的门,然而这些门彼此都是一样的,所以基本不会有什么影响定义f[i]f[i]f[i]表示已经走过了iii扇门,逃出去还需要的期望这样的定义其实是非常巧妙的,因为原创 2021-03-16 10:57:28 · 216 阅读 · 0 评论 -
#1778. [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元)
LINK定义f[i]f[i]f[i]表示在点iii爆炸的概率然后似乎不太好转移…定义f[i]f[i]f[i]表示经过点iii的期望次数,PPP表示每小时爆炸的概率,iii有in[i]in[i]in[i]条出边那么这个很好转移,可以使用高斯消元f[i]=∑(i,j)f[j]∗(1−P)∗1in[j]f[i]=\sum\limits_{(i,j)}f[j]*(1-P)*\frac{1}{in[j]}f[i]=(i,j)∑f[j]∗(1−P)∗in[j]1对于起点,由于一开始就在起点,所以额外加上原创 2021-03-13 10:44:54 · 237 阅读 · 0 评论 -
P3232 [HNOI2013]游走(DAG简单dp)
LINK求一个DAGDAGDAG图上随机路径的期望长度。期望=和/总数定义f[i]f[i]f[i]表示以iii开始的路径长度和,g[i]g[i]g[i]表示以iii开始的路径条数答案就是=∑fi∑gi=\frac{\sum f_i}{\sum g_i}=∑gi∑fi由于这是一个DAG,有终点,所以拓扑排序或记忆化搜索即可代码这里如果不是DAG,状态转移就是乱的,高斯消元即可。...原创 2021-03-13 10:03:51 · 251 阅读 · 0 评论 -
UVALive - 8162 Gambling Guid(dijstra转移期望dp)
LINKnnn个点mmm条边的无向图每次等概率选择相邻的一个点走过去,也可以不走问最优选择下,从111到nnn的期望回合数定义f[i]f[i]f[i]表示点iii到nnn的期望回合数显然f[n]=0f[n]=0f[n]=0,设uuu有kkk个出度f[u]=1+1k(∑i=1kmin(f[vi],f[u]))f[u]=1+\frac{1}{k}(\sum\limits_{i=1}^kmin(f[v_i],f[u]))f[u]=1+k1(i=1∑kmin(f[vi],f[u]))观察一下,原创 2021-03-11 20:30:48 · 216 阅读 · 0 评论 -
P3750 [六省联考2017]分手是祝愿(期望dp推式子)
LINK操作iii灯,会改变所有iii约数的状态如果灯是亮的,需要按偶数次,否则需要按奇数次。随机按,如果当前局面小于kkk次就能按完,就不随机,按照最优策略去按问按照这样去按期望按多少次.每个开关按多次相当于只按了奇数次或偶数次我们可以从大到小扫一遍,因为最大的数一定是按自己才能改变按了的话我们就可以去更新它的所有约数这样就可以得到哪些键是一定要按的,其余键按了一次还需要多按一次调整回来定义f[i]f[i]f[i]表示iii个键需要按到i−1i-1i−1个键需要按的期望次数f[i]=原创 2021-03-11 19:44:11 · 249 阅读 · 0 评论 -
bzoj3270 博物馆(高斯消元:期望转概率)
LINK定义f[a][b]f[a][b]f[a][b]为状态(a,b)(a,b)(a,b)出现的期望次数(a,b)(a,b)(a,b)表示两个男孩所在的房间f[a][b]=f[a1][b1]∗p1+f[a2][b2]∗p2...f[ax][bx]∗pxf[a][b]=f[a_1][b_1]*p_1+f[a_2][b_2]*p_2...f[a_x][b_x]*p_xf[a][b]=f[a1][b1]∗p1+f[a2][b2]∗p2...f[ax][bx]∗px其中(ai,bi)(a_原创 2021-03-11 16:16:22 · 296 阅读 · 0 评论 -
Uva 11201麻球繁衍(设概率方程的技巧)
Link题意kkk个球,每个球只存在一天就死去,但死前有pip_ipi的概率生iii个球(i∈[0,n−1]i\in[0,n-1]i∈[0,n−1])问在mmm天以前死光的概率是多少(k,n,m<=1000k,n,m<=1000k,n,m<=1000)若知道一直麻球在mmm天前死掉的概率是xxx,那么答案就是xkx^kxk定义f[i]f[i]f[i]表示一只麻球在iii天内死去的概率,考虑递推式f[i]=p0+p1f[i−1]+p2f[i−1]2...pn−1f[i−1]n原创 2021-03-10 19:40:11 · 276 阅读 · 0 评论 -
P3706 [SDOI2017]硬币游戏(高斯消元+概率)
LINK设x0x_0x0表示经过一个任意长度,都没有任何人胜利的概率xix_ixi表示经过一个任意长度的串,最后iii胜利的概率考虑最后游戏结束,一定是由一个模式串ttt加上sis_isi形成的因为形成sis_isi的概率是12m\frac{1}{2^m}2m1,所以看上去xi=12m∗x0x_i=\frac{1}{2^m}*x_0xi=2m1∗x0,但是显然没有这么多但是这样不对,因为t+sit+s_it+si串,在连接部分可能拼接一个串sjs_jsj使得更早结束游戏也就是原创 2021-03-09 20:48:00 · 257 阅读 · 0 评论 -
P6125 [JSOI2009]有趣的游戏(高斯消元+ac自动机)
LINK显然对nnn个玩家的序列建立acacac自动机高斯消元其实这是个无限循环游戏,因为轮次可以是无限的我们直接定义f[i]f[i]f[i]表示最终停在自动机节点iii的概率,下面的pi,jp_{i,j}pi,j表示节点iii到节点jjj的概率显然非终止节点的f[i]=0f[i]=0f[i]=0至于求终止节点的f[i]f[i]f[i],是从若干个非终止节点转移而来的,知道非终止节点的f[j]f[j]f[j]没有意义,无法转移那我们变一下,定义f[i]f[i]f[i]表示经过节点iii的概率原创 2021-03-09 16:32:17 · 292 阅读 · 2 评论 -
A.托米的字符串(期望,前缀和)
LINK任取一个子串,元音的期望占比是元音个数除以长度我们可以求f[i]f[i]f[i]表示长度为iii的子串中元音的期望占比但是有点难顶,不太好求的样子考虑递推,我们定义sum[i]sum[i]sum[i]为元音的前缀数量f[1]=sum[n]f[1]=sum[n]f[1]=sum[n]f[2]f[2]f[2]呢?长度为222的串比长度为111的串多覆盖了[2,n−1][2,n-1][2,n−1]一次长度为333的串又比长度为222的串多覆盖[3,n−2][3,n-2][3,n−2]一次所原创 2021-03-05 20:06:42 · 279 阅读 · 0 评论 -
华华跟奕奕玩游戏(矩阵快速幂+简单期望)
传送门开始有nnn个黑球,mmm个蓝球每次ppp概率加入黑球,1−p1-p1−p加入蓝球,然后随机拿走一个球问kkk次操作后的黑球期望大水题f[i]f[i]f[i]表示第iii次操作后还剩f[i]f[i]f[i]个黑球f[i]=f[i−1]+p−f[i−1]+1n+m+1∗p−f[i−1]n+m+1∗(1−p)f[i]=f[i-1]+p-\frac{f[i-1]+1}{n+m+1}*p-\frac{f[i-1]}{n+m+1}*(1-p)f[i]=f[i−1]+p−n+m+1f[i−1]+1原创 2021-01-19 17:15:33 · 232 阅读 · 0 评论 -
牛客练习赛23 F-托米的游戏(累加求期望)
传送门非常套路而有意思的题求期望有两种常用方式Ⅰ.Ⅰ.Ⅰ.求出总贡献,求出方案数,取平均Ⅱ.Ⅱ.Ⅱ.计算每个小步骤的期望,累加这里明显第二种方式要适用每个点的期望怎么计算??如果这个点的父亲,祖父亲…被摘掉,那么自己自然不需要摘掉也就是这个点到根的路径中有一个点被摘掉即可因为每个点摘掉的概率相同,先摘掉自己的概率为1deepi\frac{1}{deep_i}deepi1这样累加即可…#include <bits/stdc++.h>using namespace std原创 2020-12-17 11:54:20 · 338 阅读 · 0 评论 -
牛客小白月赛25 E-tokitsukaze and Segmentation(简单dp)
传送门题意有一个长度为n的字符串,字符串仅包含’0’-‘9’。要把这个字符串切割成若干个子串,每个子串作为一个十进制的数,能被3整除,且不含前导0。问有多少种切割的方案,请输出mod 998244353 后的结果。定义f[i]f[i]f[i]为[1,i][1,i][1,i]的方案数当[1,i][1,i][1,i]的数字和能被三整除时,f[i]f[i]f[i]可以向前转移当ai!=0a_i!=0ai!=0时那么此时,就是f[i]=∑j<i,aj+1!=0f[j]f[i]=\sum\l原创 2020-12-09 23:05:28 · 334 阅读 · 0 评论 -
POJ 1322Chocolate(简单概率dp)
有c种颜色的糖果,你每次可以取一个糖果放在桌子上,但是一旦桌子上已经有这个颜色的糖果了,那这两颗糖果都会没掉,问让你取n次糖果最后桌子上剩下m个糖果的概率是多少。每种糖果要么是奇数,要么没有定义f[i][j]f[i][j]f[i][j]为iii次后剩下jjj个糖果的概率f[i][j]=f[i−1][j−1]∗c−j+1c+f[i−1][j+1]∗j+1cf[i][j]=f[i-1][j-1]*\frac{c-j+1}{c}+f[i-1][j+1]*\frac{j+1}{c}f[i][j]=f[i−.原创 2020-12-07 21:05:54 · 300 阅读 · 0 评论 -
HDU 6574 Rng(期望前缀和优化[二刷])
传送门为了复习概率又跑来二刷了…为啥感觉变难了呢…晕考虑枚举第一个区间的右端点rrr,如何快速计算首先我们知道[1,r],[2,r],[3,r]...[r,r][1,r],[2,r],[3,r]...[r,r][1,r],[2,r],[3,r]...[r,r]的概率各是1n∗1r\frac{1}{n}*\frac{1}{r}n1∗r1那么如何快速计算第二个区间和[l,r][l,r][l,r]相交的概率呢?正难则反,先求不相交的概率要么一开始右端点落在左边概率是l−1n\frac{l-1}原创 2020-11-11 23:26:17 · 318 阅读 · 0 评论 -
HDU6568 Math(2019江西省赛 期望dp)
HDU传送门二刷这题,做起来思路非常清晰,但是细节问题却调了几十分钟…醉了定义f[i]f[i]f[i]为和机器人在点iii剩余的期望步数若下一步没有丢下机器人(1−p)∗(f[i+1]+1)(1-p)*(f[i+1]+1)(1−p)∗(f[i+1]+1)若下一步丢下了机器人,可能立马发现机器人,也可能下一步发现…最后到了lll,就是剩余所有可能性了p∗(q∗(1−q)0f[i]+q∗(1−q)1f[i]+q∗(1−q)2f[i]...)p*(q*(1-q)^0f[i]+q*(1-q)^1f[i原创 2020-11-11 10:09:35 · 229 阅读 · 0 评论 -
UVA1639 糖果 Candy(二项分布取对数)
题意两个盒子里分别有nnn个糖果ppp概率从第一个盒子里拿糖果,1−p1-p1−p概率从另一个盒子拿糖果当一个盒子里没有糖果时,另一个盒子糖果的期望个数.考虑第一个盒子被拿空时,第二个盒子还剩iii个糖果那么此时一共打开盒子2n−i+12n-i+12n−i+1次,但最后一次是固定的打开拿空的盒子w1=C2n−in∗pn+1∗(1−p)n−iw_1=C_{2n-i}^{n}*p^{n+1}*(1-p)^{n-i}w1=C2n−in∗pn+1∗(1−p)n−i同理当第二个盒子被拿空的时候w原创 2020-11-10 21:27:41 · 341 阅读 · 0 评论 -
CF908D. New Year and Arbitrary Arrangement(期望错位相减推导)
CF传送门定义f[i][j]f[i][j]f[i][j]为有iii个aaa和jjj个串ababab最后的期望长度一般的,可以选择字母aaa和字母bbb来转移pbp_bpb是选择字母bbb的概率,pap_apa是选择字母aaa的概率f[i][j]=pa∗f[i+1][j]+pb∗f[i][i+j]f[i][j]=p_a*f[i+1][j]+p_b*f[i][i+j]f[i][j]=pa∗f[i+1][j]+pb∗f[i][i+j]但是这么转移没完没了,必须有终止状态当i+j>=ki+原创 2020-11-10 20:22:55 · 349 阅读 · 0 评论 -
HDU 5985Lucky Coins(新颖的概率题)
传送门题意有几种硬币,告诉你每种硬币的数量和抛起朝上的概率p(0.4<=p<=0.6)。每次抛起所有硬币,去掉背面朝上的(硬币不会立起来)。如果只剩一种硬币或者没有硬币结束,只剩一种的话叫这种幸运硬币问每种成为幸运硬币的概率。(n总和小于1e6,种类最多10种)精度1e-6做法做法非常巧妙,观察到ppp的范围适中所以可以证明经过几十上百次回合后未分胜负的概率很低的但是注意到当回合数很大的时候,对幸运数字贡献基本为0所以我们对第iii种硬币枚举在第kkk轮中存活进行求和即可定原创 2020-11-06 00:08:07 · 335 阅读 · 0 评论 -
HDU Knights(比较思维的概率dp)
HDU传送门只需要关心往右边走的其实有多少个就好了因为最后一个骑士一定是把所有向右走的骑士都干掉了(向左走的骑士最后都会向右走)定义f[i][j]f[i][j]f[i][j]前iii个格子向右边走的有jjj个的概率当a[i]==1a[i]==1a[i]==1往右边走f[i][j]=f[i−1][j−1]f[i][j]=f[i-1][j-1]f[i][j]=f[i−1][j−1]当a[i]==0a[i]==0a[i]==0往左边走f[i][j]=∑k=ji−1f[i−1][k]∗12k−j+1f原创 2020-11-04 21:46:08 · 244 阅读 · 1 评论 -
ZOJ3415 Zhou Yu(期望推式子)
定义f[i]f[i]f[i]是iii到i−1i-1i−1的期望那么f[n]=mm−1f[n]=\frac{m}{m-1}f[n]=m−1m且f[i]=1m∗(f[i]+f[i+1])+1f[i]=\frac{1}{m}*(f[i]+f[i+1])+1f[i]=m1∗(f[i]+f[i+1])+1m−1m∗f[i]=1m∗f[i+1]+1\frac{m-1}{m}*f[i]=\frac{1}{m}*f[i+1]+1mm−1∗f[i]=m1∗f[i+1]+1化简得到f[i]=1m−1∗f[i+原创 2020-11-04 19:21:23 · 320 阅读 · 1 评论 -
HDU3366 Passage(等概率模型+贪心dp)
HDU传送门网上所有题解都是直接说排序…也是醉了假设资金无限,那么每一种选择道路的方式逃生的概率都是一样的因为不会死,这个可以手推一下.那么考虑资金很少,少到死一次就game overgame\ overgame over令两扇门分别为pi,qi,pj,qjp_i,q_i,p_j,q_jpi,qi,pj,qj若先选iii再选jjj逃生的概率大于先选jjj再选iiipi+(1−pi−qi)∗pj>pj+(1−pj−qj)∗pip_i+(1-p_i-q_i)*p_原创 2020-11-04 16:22:43 · 346 阅读 · 0 评论 -
HDU 4870 Rating(O(n)线性递推)
网上的答案都写得很复杂,又乱…醉了假设只有一个账号定义dp[i]dp[i]dp[i]为iii到i+1i+1i+1的期望dp[0]=1pdp[0]=\frac{1}{p}dp[0]=p1dp[1]=(1−p)∗(dp[0]+dp[1])+1dp[1]=(1-p)*(dp[0]+dp[1])+1dp[1]=(1−p)∗(dp[0]+dp[1])+1化简得到dp[1]=1−pp2+1p=1p2dp[1]=\frac{1-p}{p^2}+\frac{1}{p}=\frac{1}{p^2}dp[1]=p2原创 2020-11-03 22:27:22 · 219 阅读 · 0 评论 -
HDU4870 Rating(高斯消元)
有个人有两个0分账号,他可以打比赛,他每次用分低的那个账号打比赛,有p的概率名列前茅,加50分(上限1000分)否则掉100分(下限0分)。问有一个账号到1000分的期望。先压缩一下状态,把505050看作111,把100100100看作222,把100010001000看作202020那么就是一个dp[20][20]dp[20][20]dp[20][20]的方程表示最高分是iii,次高分是jjj的期望步数dp[i][j]=dp[ii][jj]∗p+dp[iii][jjj]∗(1−p)+1dp原创 2020-11-03 21:12:21 · 267 阅读 · 0 评论 -
D. Jon and Orbs(很笨的概率dp)
感觉这个题很蠢直接f[i][j]f[i][j]f[i][j]表示iii次后有jjj个出现的概率f[i][j]=f[i−1][j−1]∗k−(j−1)k+f[i−1][j]∗jkf[i][j]=f[i-1][j-1]*\frac{k-(j-1)}{k}+f[i-1][j]*\frac{j}{k}f[i][j]=f[i−1][j−1]∗kk−(j−1)+f[i−1][j]∗kj#include <bits/stdc++.h>using namespace std;int k,q;do原创 2020-10-30 18:13:22 · 282 阅读 · 0 评论 -
Lightoj 1408 Batting Practice LightOJ - 1408(解方程....)
题意有ppp概率投偏球,问连续中k!k_!k!次和连续不中k2k_2k2次的期望击球数VJ传送门定义f[i]f[i]f[i]为连续打偏iii次,还需要的期望定义g[i]g[i]g[i]为连续打中iii次,还需要的期望f[k2]=g[k1]=0f[k_2]=g[k_1]=0f[k2]=g[k1]=0f[i]=f[i+1]∗p+g[1]∗(1−p)+1f[i]=f[i+1]*p+g[1]*(1-p)+1f[i]=f[i+1]∗p+g[1]∗(1−p)+1可以发现f[i]f[i]f[i]的原创 2020-10-30 10:24:04 · 264 阅读 · 0 评论 -
A Dangerous Maze (II)(妙用期望定义-dp)
VJ传送门首先因为这个能记住前kkk条路很不好搞因为dpdpdp过程中无法知道它记住的是那些门所以就需要把门抽象成两类一种是进去后回到起点,花费总时间val1val_1val1,有s1s_1s1扇门一种是进去后就能逃生,花费总时间val2val_2val2,有s2s_2s2扇门这样把所有第一类门权值看作val1s1\frac{val_1}{s_1}s1val1,把所有第二类门看作val2s2\frac{val_2}{s_2}s2val2因为对于同一类门来说,被选到的概率均等原创 2020-10-29 09:03:42 · 286 阅读 · 0 评论 -
Expected Cards(记忆化搜索dp)
VJ传送门使用普通递推会非常麻烦记忆化搜索可以很方便的解决这个问题定义dp[a][b][c][d]dp[a][b][c][d]dp[a][b][c][d]分别保存四种花色已有的卡牌但是王牌也需要保存状态,所以是dp[a][b][c][d][f][g]dp[a][b][c][d][f][g]dp[a][b][c][d][f][g],f,gf,gf,g保存王牌这样满足条件的地点就是终止点,返回000#include <bits/stdc++.h>using namespace std;原创 2020-10-28 21:41:01 · 261 阅读 · 0 评论 -
收集邮票问题和期望dp推导+变形例题
有n种类型的邮票问将所有的类型的邮票全部收集起来所要的收集次数期望是多少。定义f[i]f[i]f[i]为已经收集了iii张邮票,还要几次达成目的f[i]=inf[i]+n−inf[i+1]+1f[i]=\frac{i}{n}f[i]+\frac{n-i}{n}f[i+1]+1f[i]=nif[i]+nn−if[i+1]+1化简得到f[i]=f[i+1]+nn−if[i]=f[i+1]+\frac{n}{n-i}f[i]=f[i+1]+n−in所以f[0]=n1+n2+n3...+nnf[0]原创 2020-10-28 17:56:21 · 474 阅读 · 0 评论 -
Aladdin and the Magical Sticks(邮票问题的期望dp)
VJ传送门让我们简化一下模型,考虑一下这个问题有num1num_1num1张牌拿完不放回,叫做类型一牌有num2num_2num2张牌拿完且放回,叫做类型二牌问,把所有牌至少拿一次时,期望拿多少次类型二牌?明显可以定义dp[i][j]dp[i][j]dp[i][j]表示有iii张类型一牌被拿过,jjj张类型二牌被拿过下一次拿类型Ⅰ牌:p1=num1−in−i下一次拿类型Ⅰ牌:p_1=\frac{num_1-i}{n-i}下一次拿类型Ⅰ牌:p1=n−inum1−i下一次拿已经拿过的类型原创 2020-10-28 17:28:54 · 306 阅读 · 0 评论 -
Sending Packets LightOJ - 1321(简单最短路期望..)
vj传送门直接跑出起点到终点的最大成功概率即可考虑这样做的正确性:由于只需要在游戏开始的时候付钱,所以在路上早点死还是晚点死是没有意义的关心的只是最终的概率设最大概率是pppE=p∗2k+(1−p)∗(E+2k)E=p*2k+(1-p)*(E+2k)E=p∗2k+(1−p)∗(E+2k)化简得到E=2kpE=\frac{2k}{p}E=p2k答案就是2ksp\frac{2ks}{p}p2ks#include <bits/stdc++.h>using namespace s原创 2020-10-24 20:44:04 · 300 阅读 · 0 评论 -
HDU1287 Where to Run(记忆化搜索dp)
vj传送门首先需要预处理每个状态哪些点可以遍历完图这个过程可以记忆化搜索临界点是状态为(1<<n)−1(1<<n)-1(1<<n)−1,包含所有点,此时无论在哪个点都遍历完全图了由此可以开始dfsdfsdfs,能到达这个状态的也能遍历全图…这样预处理后,dpdpdp就变得方便很多了再来一遍dfsdfsdfs去dpdpdp即可#include <bits/stdc++.h>using namespace std;const int maxn=(原创 2020-10-24 11:18:16 · 247 阅读 · 0 评论 -
lightoj1284 Lights inside 3D Grid(构造二项式期望)
传送门vj首先注意这是网格图,不是点图然后之前都是靠递推式dpdpdp求解,但是这题是利用期望的可加性直接对每个点计算如果选的两个格子包含(x,y,z)(x,y,z)(x,y,z),说明座标在这个点的两侧px=2∗x1∗(x−x1+1)−1x2p_x=\frac{2*x_1*(x-x_1+1)-1}{x^2}px=x22∗x1∗(x−x1+1)−1对于y,zy,zy,z座标也是一样计算令ppp为这个点被选中的概率Ck1p∗(1−p)k−1+Ck3p3(1−p)k−3...C_{k}^{原创 2020-10-23 18:44:02 · 241 阅读 · 0 评论