Summary -「Probabilistic」

cirnovsky /

∆ CF24D Broken robot - AC

fi,jf_{i,j} 为从 (i,j)(i,j) 走到最后一排的期望步数,则有方程

fi,j=14(fi,j1+fi,j+1+fi+1,j+fi,j)f_{i,j}=\frac{1}{4}(f_{i,j-1}+f_{i,j+1}+f_{i+1,j}+f_{i,j})

直接高斯消元 Θ(nm3)\Theta(nm^{3}) 死有余辜。

仔细考虑一下,因为一个 fi,jf_{i,j} 在同行的依赖项最多三个,所以一行中一共只有 33 个未知数。

那么复杂度就成了 Θ(nm)\Theta(nm)

对了边界:

fi,1=13(fi,1+fi,2+fi+1,1)fi,m=13(fi,m+fi,m1+fi+1,m)f_{i,1}=\frac{1}{3}(f_{i,1}+f_{i,2}+f_{i+1,1}) \\ f_{i,m}=\frac{1}{3}(f_{i,m}+f_{i,m-1}+f_{i+1,m})

特判 m=1m=1

∆ P3211 [HNOI2011]XOR和路径 - AC

异或的期望 \neq 期望的异或(悲

按位考虑,设 fu,0/1f_{u,0/1}1u1\rightarrow u 异或值第 ii0/10/1 的概率。

等一下非 0011

之前作废)设 fuf_{u} 为到 unu\rightarrow n 时,异或值的第 ii 位为 11 的概率(后转期望),这个 ii 不需要带进状态里。

则有转移:

fu={(u,v)E1dufv,weight(u,v)i=1(u,v)E1du(1fv),weight(u,v)i=0f_{u}=\begin{cases} \displaystyle \sum_{(u,v)\in E}\frac{1}{d_{u}}f_{v},\text{weight}(u,v)_{i}=1 \\ \displaystyle \sum_{(u,v)\in E}\frac{1}{d_{u}}(1-f_{v}),\text{weight}(u,v)_{i}=0 \\ \end{cases}

最后的答案就是对所有位求和。

Problem. 1 Junior - Formula

mi,jm_{i,j} 表示答案,ai,ja_{i,j} 表示原矩阵。

则方程为 (mi,j+mi1,j+mi+1,j+mi,j1+mi,j+1+ai,j)bitand1=0(m_{i,j}+m_{i-1,j}+m_{i+1,j}+m_{i,j-1}+m_{i,j+1}+a_{i,j})\operatorname{bitand}1=0

变下形高消即可。

Problem. 2 Junior / Senior - Formula

直接设概率做不来的样子。。。

问了一下懂行的人发现需要设期望。

fuf_{u} 为节点经过 uu 的期望次数,设 EE 为边集,dud_{u} 表示节点 uu 的度。

fu=(1pq)(u,v)E1dvfvf_{u}=(1-\frac{p}{q})\sum_{(u,v)\in E}\frac{1}{d_{v}}f_{v}

因为有环,所以需要高斯消元一下。

那么在每个节点爆炸的概率即为 fu×pqf_{u}\times\frac{p}{q}

总结一下,这道题告诉了我不仅是期望可以回归本质用概率搞,概率也可以用期望来整。

Problem. 3 Junior / Senior - Formula & Thinking

fu,vf_{u,v} 表示同一时刻 Petya 在点 uu,Vasya 在点 vv 的概率。

fu,v=pupvfu,v+(u,u)E(v,v)E1pudu1pvdvfu,v+(u,u)Epv1pudvfu,v+(v,v)Epu1pvdvfu,vf_{u,v}=p_{u}p_{v}f_{u,v}+\sum_{(u,u')\in E}\sum_{(v,v')\in E}\frac{1-p_{u'}}{d_{u'}}\frac{1-p_{v'}}{d_{v'}}f_{u',v'}+\sum_{(u,u')\in E}p_{v}\frac{1-p_{u'}}{d_{v'}}f_{u',v}+\sum_{(v,v')\in E}p_{u}\frac{1-p_{v'}}{d_{v'}}f_{u,v'}

完了。