![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
概率与期望
Icefox_zhx
这个作者很懒,什么都没留下…
展开
-
CF16E Fish(概率dp+状压dp)
这题好像思路还是很简单的。。。概率推了一会。。。太弱了。。。原创 2017-10-18 17:21:15 · 549 阅读 · 0 评论 -
bzoj5340/loj2552「CTSC2018」假面(期望与概率+背包dp)
这签到题送我见祖宗了啊qaq 全世界都A了这题,像我这样只拿了10分的傻子怕是不多了吧。我们考虑怎么求最后的期望生命值。 因为减到0血就不减了,所以我们不能直接每次期望算,只好考虑一个背包转移。 dp[i][j]表示i减了j滴血的概率。减了K[i]滴血就代表i死了。 每次攻击时对x做一个O(mi)的背包转移即可。 最后对每个人枚举减j滴血的情况计算即可。我们考虑“结界”询问。 即就是问活原创 2018-05-08 21:17:46 · 655 阅读 · 1 评论 -
bzoj2337 [HNOI2011]XOR和路径(期望dp+按位+高斯消元)
我们把异或拆开,一位位的考虑,这样边权就只有0/1了。 考虑期望dp,f[i]表示i节点到n的路径异或和为1的概率。 那么我们有转移:如果i指向y,且边权为1,f[i]+=(1−f[y])/du[i]f[i]+=(1−f[y])/du[i]f[i]+=(1-f[y])/du[i] 如果i指向y,且边权为0,f[i]+=f[y]/du[i]f[i]+=f[y]/du[i]f[i]+=f[y]/...原创 2018-05-17 23:05:45 · 193 阅读 · 0 评论 -
bzoj3143 [Hnoi2013]游走(期望dp+高斯消元+贪心)
我们计算出每条边被经过的期望次数,次数越多的标号越小即可。 考虑一条边被经过的次数怎么求,设这条边为(x,y),f[x]表示经过点x的期望次数,du[x]表示x的度数。 那么经过这条边的期望次数就是f[x]/du[x]+f[y]/du[y]f[x]/du[x]+f[y]/du[y]f[x]/du[x]+f[y]/du[y] 因此我们现在只需求出f[x]。期望dp即可。 对于1<x&l...原创 2018-05-18 10:26:24 · 183 阅读 · 0 评论 -
bzoj1778 [Usaco2010 Hol]Dotp 驱逐猪猡(概率dp+高斯消元)
设dp[i]为到点i的概率。则我们有转移 dp[i]=∑jdp[j]∗(1−p)∗mp[j][i]/du[j]dp[i]=\sum\limits_{j}dp[j]*(1-p)*mp[j][i]/du[j] 对于点1还要额外加1. 但是因为转移是带环的,我们没法转移。 我们采用高斯消元,解这n个方程即可。 复杂度O(n3)O(n^3)注意有孤立点!精度其实要求1e-9!#include <b原创 2018-05-08 20:04:38 · 253 阅读 · 0 评论 -
bzoj3640 JC的小苹果(期望dp+Gauss+矩阵求逆)
我们有比较显然的期望dp,f[x][i]表示到x点血量为i的期望次数。 我们有转移f[x][i]=∑yf[y][i+w[x]]du[y]f[x][i]=∑yf[y][i+w[x]]du[y]f[x][i]=\sum_y\frac{f[y][i+w[x]]}{du[y]} 直接高斯消元复杂度O((nhp)3)O((nhp)3)O((nhp)^3)gg 由于血量不增,因此我们可以按剩余血量分层d...原创 2018-05-25 23:10:21 · 289 阅读 · 0 评论 -
CF739E Gosha is hunting(期望dp+wqs二分)
首先我们有朴素dp,f[i][a][b]表示对于前i个小精灵用a个a球,b个b球可以获得的最大期望值。 枚举第i个小精灵的方式转移即可。O(n3)O(n3)O(n^3) 考虑优化这个dp,我们发现这个问题好像还可以费用流…诶,他好像是凸的…诶…wqs二分! 好像两维都可以wqs二分呢!orz 于是O(nlog2n)O(nlog2n)O(nlog^2n)解决了这个问题。 你问我为啥是凸的…...原创 2018-05-16 10:45:21 · 1115 阅读 · 0 评论 -
bzoj2707 [SDOI2012]走迷宫(期望dp+tarjan缩点+Gauss)
令f[i]表示从i到T的期望步数。 我们有转移f[x]=∑yf[y]du[x]+1f[x]=∑yf[y]du[x]+1f[x]=\sum_y\frac{f[y]}{du[x]}+1 因为存在环所以scc内只能Gauss来求。 于是我们先tarjan缩一波点,然后倒拓扑序dp即可。 f[T]=0. 如果s,t不连通那么输出inf,或者缩完点之后没有出度的点不止bel[T],那么输出inf。...原创 2018-05-26 22:14:51 · 409 阅读 · 0 评论 -
bzoj4820 [Sdoi2017]硬币游戏(期望与概率+Gauss+kmp)
#include &lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 310inline int read(){ int x=0,f=1;char ch=getchar(); while(ch&lt;'0'||ch&gt;'9'){if(c...原创 2018-05-26 23:23:17 · 258 阅读 · 0 评论 -
bzoj3450 Tyvj1952 Easy(期望与概率+dp)
如果是多了一个o,就会使得答案期望增加2L+1. 变成线形的就可以期望dp了。#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 6e14#define N 500010inline char gc(){ static char buf[1<<16],...原创 2018-06-11 16:04:47 · 224 阅读 · 0 评论 -
bzoj4036 [HAOI2015]按位或(概率与期望+fmt)
vfk的论文题。具体可以参见国家集训队2015论文集 吕凯风的《集合幂级数的性质与应用及其快速算法》 这题就是求集合并卷积,用快速莫比乌斯变换即可。 答案就是∑k=1ook∗(pk[U]−pk−1[U])∑k=1ook∗(pk[U]−pk−1[U])\sum\limits_{k=1}^{oo}k*(p^k[U]-p^{k-1}[U]) 莫比乌斯变换之后,化简一下,就得到了一个等比数列,因为∑...原创 2018-06-12 15:08:24 · 386 阅读 · 0 评论 -
bzoj4872 [Shoi2017]分手是祝愿(贪心+期望dp)
首先考虑k=n的话最优解是怎样的。 因为拉一盏灯只会影响到比它标号小的灯和自己。 所以我们按标号从大到小考虑。如果一盏灯还亮着就必须拉,并且把影响到的灯改变。这样就可以得到目前状态的最小操作次数了。 设f[i]表示剩余最小操作次数为i时还期望操作多少步,可以列出方程: f[i]=in∗f[i−1]+n−in∗f[i+1]+1f[i]=in∗f[i−1]+n−in∗f[i+1]+1f[i]=...原创 2018-06-12 20:29:26 · 205 阅读 · 0 评论 -
bzoj2830/luogu3830 随机树(期望与概率dp)
首先第一问,我们设f[i]f[i]f[i]表示i个叶子的树的叶子平均深度的期望 那么有转移f[i]=f[i−1]∗(i−1)−f[i−1]+(f[i−1]+1)∗2if[i]=f[i−1]∗(i−1)−f[i−1]+(f[i−1]+1)∗2if[i]=\frac{f[i-1]*(i-1)-f[i-1]+(f[i-1]+1)*2}{i} 即f[i]=f[i−1]+2/if[i]=f[i−1]+2...原创 2018-06-15 16:19:57 · 353 阅读 · 0 评论 -
bzoj2134 单选错位(概率与期望)
考虑答对第i题的概率,设第i-1题答案有a个,第i题答案有b个,那么一共有ab种可能,而答对的可能只有min(a,b)种,因此答对这一题的概率就是1/max(a,b)。每一题都相互独立,分别计算加起来就是期望。#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f...原创 2018-06-09 17:22:25 · 212 阅读 · 0 评论 -
bzoj3270 博物馆(概率dp+高斯消元)
设dp[i][j]表示第一个人在i,第二个人在j的概率。 我们有转移: dp[i][j]=dp[i][j]∗p[i]∗p[j]+∑kmp[k][i]∗p[j]∗(1−p[k])/du[k]+∑kmp[k][j]∗p[i]∗(1−p[k])/du[k]+∑k1∑k2mp[k1][i]∗mp[k2][j]∗(1−p[k1])∗(1−p[k2])/du[k1]/du[k2]dp[i][j]=dp[i]原创 2018-05-08 20:11:50 · 278 阅读 · 0 评论 -
bzoj2553 [BeiJing2011]禁忌(ACAM+概率dp+矩阵快速幂)
先把所有禁忌串建成ACAM,搞出Trie图。然后我们首先对于一个字符串,他的伤害是多少,就可以转化成选最多的线段两两不相交。这个问题可以贪心地按右端点排序后能取就取。体现在ACAM上就是走到一个结束节点就返回根,++ans。f[i][j]表示长度为i的串匹配到ACAM的节点j的伤害期望值。然后长度超级大!我们需要矩阵倍增!但是我们还要记录ans,怎么办呢!再多开一个点累计答案!如果一个点再走到他的儿原创 2018-04-19 17:11:09 · 212 阅读 · 0 评论 -
CF678E Another Sith Tournament(概率dp+状压dp)
这题又想了会???一开始题都没读对orz。。其实就是让你安排一个比赛顺序,要求1最后存活的概率最大,求这个最大的概率。dp[s][i]表示状态s时擂主为i+1,最后1活下来的最大概率 。我们考虑倒着推(因为正着推难以统计答案x),则状态转移很显然:见代码。。。初始值给dp[1][0]=1,因为要求最后1存活下来。复杂度O(2^n*n^2)原创 2017-10-18 22:14:08 · 454 阅读 · 0 评论 -
CF482C Game with Strings(期望dp+状压dp)
这题很神啊。orz sbw. 首先考虑一个数组num[s],表示问了s状态的问题,有几个串不能判断 。直接枚举状态处理的话会爆掉,因此思考优化。考虑两个串,什么状态会不能判断呢?当你询问的位置上的字母相同时。因此枚举两个串,相同的位置标1,把这个东西压成s.则询问的问题为s的子集时均不同区分这俩。从大到小递推的算出num[s]即可。有了这个数组我们就好dp了原创 2017-10-19 15:36:16 · 444 阅读 · 0 评论 -
CIA8 【TJOI2015】概率论(加强版)(生成函数+期望+卡特兰数+逆元)
这题居然被leoly加强了啊orz,形态数就是卡特兰数h,叶子节点总数f可以用生成函数+卷积推出,叶子节点平方的总数s可以由上两个函数推出。这题强啊,过程懒得写啊。把结论写下: hn=∑i=0n−1hi∗hn−1−i=Cn2nn+1h_n=\sum\limits_{i=0}^{n-1}h_i*h_{n-1-i}=\frac{C_{2n}^n}{n+1} fn=∑i=0n−12∗hi∗fn−1−i原创 2017-11-08 08:42:39 · 867 阅读 · 1 评论 -
NOIP模拟11.1
Poetize9 A.communicate (部分分搞了90,仙人掌我哪会啊。。) B.queue 暴力(被我暴力水过了???) C.signal 位运算+瞎搞?(ll加错地方,爆0滚粗(还好有暴力40分)原创 2017-11-01 14:37:08 · 531 阅读 · 0 评论 -
bzoj4318 OSU!(期望dp)
e1[i],表示长度为i的串,末尾连续1的个数的期望。 e2[i],表示长度为i的串,末尾连续1的个数的平方的期望。 e2[i]=(e2[i−1]+2∗e1[i−1]+1)∗pe2[i]=(e2[i-1]+2*e1[i-1]+1)*p 为什么呢? 假设一共有n种情况,末尾1的个数分别为xi,出现的概率为pi的话 e1[i]=x1∗p1+x2∗p2+...+xn∗pne1[i]=x_1*p_原创 2018-01-10 22:34:24 · 407 阅读 · 0 评论 -
bzoj3470 Freda’s Walk(期望dp+概率dp+拓扑序+数学)
先正着拓扑序一遍,求出p[i],表示从1出发到达i点的概率。 然后倒着拓扑序一遍,求出f[i],表示从i开始走的期望步数。 这时候的f[1]就是不删边时的期望步数了。 我们考虑如果删掉边x->y,w,对答案有什么影响。 显然对x之前的点是没有任何影响的。 原本的f[x]=(f[y]+1)∗w(x,y)+∑v(f[v]+1)∗w(x,v)sum[x]f[x]=\frac{(f[y]+1)*w原创 2018-01-13 23:20:00 · 381 阅读 · 0 评论 -
CF908D New Year and Arbitrary Arrangement(期望dp+数学)
官方题解说的比较清楚了。dp[i][j]表示前缀有i个a,j个ab的期望个数。则显然有转移:$dp[i][j] = (pa * dp[i + 1][j] + pb * dp[i][i + j]) / (pa + pb).$答案就是dp[0][0]。问题在于边界如何确定。首先我们根据题意有$dp[i][j]=j ,j>=k$。原创 2017-12-30 15:40:54 · 610 阅读 · 0 评论 -
Codeforces Good Bye 2017
CF908A New Year and Counting Cards(模拟)CF908B New Year and Buggy Bot(枚举+模拟)CF908C New Year and Curling(几何+枚举)CF908D New Year and Arbitrary Arrangement(期望dp+数学)原创 2017-12-30 14:23:21 · 353 阅读 · 0 评论 -
bzoj2201 彩色圆环(期望dp)
dp[i][1/0]表示长度为i的序列,第一个和第二个球颜色不同,第一个和最后一个颜色相同/不同 的期望美观程度 定义很绕,没办法呀…毕竟是个环。 p[i]表示i个连续的球颜色相同的概率 枚举最后一段的长度j来O(n)转移, dp[i][0]=∑i−1j=1p[j]∗j∗dp[i−j][0]∗(1−2/m)+p[j]∗j∗dp[i−j][1]∗(1−1/m)dp[i][0]=\sum_{j原创 2018-01-09 17:29:21 · 795 阅读 · 0 评论 -
bzoj3029 守卫者的挑战(概率dp)
本题关键在于注意到背包容量超过n以后是没有什么用的,视作n就好了。我是对于碎片局和背包局分开dp了。 dp1[i][j],对于碎片局,前i场赢j场的概率。 dp2[i][j][k],对于背包局,前i场赢j场,背包总容量>=k的概率原创 2018-01-10 21:37:39 · 375 阅读 · 0 评论 -
bzoj1076 [SCOI2008]奖励关(期望dp+状压dp)
期望dp就要倒着做。。。 dp[i][S],表示前i-1轮过后,目前的宝物获得状态是S,在i~k轮能获得的最大期望。那么答案就是dp[1][0]。原创 2018-01-30 14:34:08 · 336 阅读 · 0 评论 -
luogu1850【2016提高】换教室(期望dp+floyd)
首先floyd处理两点间最短路,然后期望dp。注意你不知道申请是否成功,因此0/1只能表示你是否进行了申请,至于结果如何,要乘上概率。#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 2010inline int read(){...原创 2017-11-07 10:13:03 · 311 阅读 · 0 评论 -
bzoj1444 [Jsoi2009]有趣的游戏(ACAM+矩阵+概率dp)
给定n个长度为l的模式串,现在要用前m个大写字母生成一个随机串,每个字符有自己的出现几率,第一次出现的字符串获胜,求最终每个字符串的获胜几率建出ACAM,搞出Trie图,弄出转移矩阵: 如果某个节点是模式串结尾那么这个节点只向自己连一条概率为1的出边(因为只要一走到结尾节点游戏就停止了)否则的话向每个转移到的节点,加上转移的概率。然后把转移矩阵自乘50遍即可。吐槽:这题假的假的【再见】,我写矩阵倍原创 2018-03-23 21:09:00 · 524 阅读 · 1 评论 -
bzoj4944 [Noi2017]泳池(dp,概率与期望)
首先把求最大面积恰为K的概率转化成 求最大面积&amp;lt;=K的概率-最大面积&amp;lt;=K-1的概率我们注意到最底层一定是选了若干段&amp;lt;=K的连续段,于是我们可以枚举连续段的长度来dp。我们考虑f[i][j]f[i][j]f[i][j]表示底边长为i,且每一列都向上延伸至少h的高度且满足面积&amp;lt;=K的概率那么我们有 fn,mfn,mf_{n, m} = ⎧⎩⎨⎪⎪01pnfn,...原创 2018-06-28 22:20:52 · 322 阅读 · 0 评论