
概率dp
文章平均质量分 51
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018.08.30 游戏(概率dp)
题目描述 Alice 和 Bob 两个人正在玩一个游戏,游戏有很多种任务,难度为 p 的任务(p是正整数),有 1/(2^p) 的概率完成并得到 2^(p-1) 分,如果完成不了,得 0 分。一开始每人都是 0 分,从 Alice 开始轮流做任务,她可以选择任意一个任务来做;而 Bob 只会做难度为 1 的任务。只要其中有一个人达到 n 分,即算作那个人胜利。求 Alice 采取最优策略的情况下...原创 2018-08-30 19:11:18 · 193 阅读 · 1 评论 -
codeforces 931E. Game with String(概率dp)
传送门感觉这题难点在读懂题。题目简述:给你一个字符串s,设将其向左平移k个单位之后的字符串为t,现在告诉你t的第一个字符,然后你可以另外得知t的任意一个字符,求用最优策略猜对k的概率。解析:预处理出一个数组cnti,j,kcnt_{i,j,k}cnti,j,k表示一段字串开头为iii,结尾为jjj,字串长度为k+1k+1k+1的字串数量。然后如果cnti,j,k=1cnt_{i,j,...原创 2018-12-12 11:14:11 · 264 阅读 · 0 评论 -
2018.11.08 UVA11021 Tribles(概率dp)
传送门概率dpdpdp简单题。设f[i]f[i]f[i]表示第iii天的答案。然后枚举ppp数组从fi−1f_{i-1}fi−1转移过来就行了。显然有fi=∑j=0npj∗(fi−1)jf_i=\sum_{j=0}^np_j*(f_{i-1})^jfi=∑j=0npj∗(fi−1)j代码:#include<bits/stdc++.h>using namespac...原创 2018-11-08 23:40:36 · 181 阅读 · 0 评论 -
2018.10.17 NOIP模拟 发电机(概率dp)
传送门考试空间开大了爆零不然只有30分爆栈?话说这题真的坑1e7没法写dfsdfsdfs其实很好推式子。考虑每个点安一个发动机的概率,推一波式子做个等比数列求和什么的可以证明出来是严格的1size\frac {1} {size}size1其中sizesizesize表示子树的大小。因此答案为:∑i=1n1size[i]\sum _{i=1} ^n \frac {1} {size[i]...原创 2018-10-17 18:50:33 · 198 阅读 · 0 评论 -
2018.10.13 bzoj4008: [HNOI2015]亚瑟王(概率dp)
传送门马上2点考初赛了,心里有点小紧张。做道概率dp压压惊吧。话说这题最开始想错了。最开始的方法是考虑f[i][j]f[i][j]f[i][j]表示第iii轮出牌为jjj的概率。然后用第iii轮111~j−1j-1j−1都不选的概率与前i−1i-1i−1轮都不选jjj的概率转移。但这样是错的。因为两个转移的量是有交集的。因此需要换一种状态定义方式。我们考虑f[i][j]f[i][...原创 2018-10-13 13:00:58 · 156 阅读 · 0 评论 -
2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)
传送门简单概率dp。显然每次转移的式子可以用一个矩阵表示出来:这个是循环矩阵。因此只用维护第一行快速幂一波就行了。代码:#include<bits/stdc++.h>#define N 1005using namespace std;int n,m,K,a[N];double b[N];struct Matrix{double val[N];}ans,tmp;...原创 2018-09-27 22:08:21 · 195 阅读 · 0 评论 -
2018.09.27 bzoj3029: 守卫者的挑战(概率dp)
传送门概率dp经典题目。直接f[i][j][k]f[i][j][k]f[i][j][k]表示当前是第i次挑战,已经胜利了j次,目前的背包剩余空间是k。然后用前面的转移后面的就行了。注意第三维可能是负数,需要用一些技巧转化一下(比如把整个数组的下标向右平移)代码:#include<bits/stdc++.h>#define N 205using namespace std...原创 2018-09-27 20:26:34 · 263 阅读 · 0 评论 -
2018.09.24 bzoj1867: [Noi1999]钉子和小球(概率dp)
传送门概率dp经典题。如果当前位置(i,j)(i,j)(i,j)有钉子,那么掉到(i+1,j),(i+1,j+1)(i+1,j),(i+1,j+1)(i+1,j),(i+1,j+1)的概率都是1/2。而如果没有钉子,那么掉到(i+2,j+1)(i+2,j+1)(i+2,j+1)的概率是1。这样转移就行了。另外注意读入字符要用cin。代码:#include<bits/stdc++...原创 2018-09-24 22:56:30 · 570 阅读 · 0 评论 -
2018.09.01 poj3071Football(概率dp+二进制找规律)
传送门 概率dp简单题。 设f[i][j]表示前i轮j获胜的概率。 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1)(j-1)>>(i-1)^1==(k−1)>>(i−1)1==(k−1)>>(i−1)1==(k-1)>>(i-1)。 简单举个例子? 假设有八个人,对应下来二进制...原创 2018-09-01 17:04:55 · 170 阅读 · 0 评论 -
2018.08.31 bzoj3566: [SHOI2014]概率充电器(概率dp+容斥原理)
传送门 概率dp好题啊。 用f[i]f[i]f[i]表示i自己不亮并且子树中的节点不会让i亮的概率。 用g[i]g[i]g[i]表示i的子树以外的连通块不会使i变亮的概率。 貌似f[i]f[i]f[i]可以直接推出来啊: f[i]=(1−q[i])∗∏v(f[v]+(1−f[v])∗(1−dis[i,v]))f[i]=(1−q[i])∗∏v(f[v]+(1−f[v])∗(1−dis[i,...原创 2018-08-31 20:42:45 · 208 阅读 · 0 评论 -
codeforces 935D. Fafa and Ancient Alphabet(概率dp)
传送门概率dp水题。题意简述:给你数字表的大小和两个数列,数列中为0的数表示不确定,不为0的表示确定的,求第一个数列字典序比第二个数列大的概率。fif_ifi表示第i ni~ ni n位第一个数列比第二个数列大的概率。然后分是否为0的情况讨论一下就行了。代码:#include<bits/stdc++.h>#define ri register in...原创 2018-12-12 11:51:17 · 268 阅读 · 0 评论