∆ CF24D Broken robot - AC
设 fi,j 为从 (i,j) 走到最后一排的期望步数,则有方程
fi,j=41(fi,j−1+fi,j+1+fi+1,j+fi,j)
直接高斯消元 Θ(nm3) 死有余辜。
仔细考虑一下,因为一个 fi,j 在同行的依赖项最多三个,所以一行中一共只有 3 个未知数。
那么复杂度就成了 Θ(nm)。
对了边界:
fi,1=31(fi,1+fi,2+fi+1,1)fi,m=31(fi,m+fi,m−1+fi+1,m)
特判 m=1。
∆ P3211 [HNOI2011]XOR和路径 - AC
异或的期望 = 期望的异或(悲
按位考虑,设 fu,0/1 为 1→u 异或值第 i 位 0/1 的概率。
等一下非 0 即 1。
之前作废)设 fu 为到 u→n 时,异或值的第 i 位为 1 的概率(后转期望),这个 i 不需要带进状态里。
则有转移:
fu=⎩⎨⎧(u,v)∈E∑du1fv,weight(u,v)i=1(u,v)∈E∑du1(1−fv),weight(u,v)i=0
最后的答案就是对所有位求和。
Problem. 1 Junior - Formula
用 mi,j 表示答案,ai,j 表示原矩阵。
则方程为 (mi,j+mi−1,j+mi+1,j+mi,j−1+mi,j+1+ai,j)bitand1=0。
变下形高消即可。
Problem. 2 Junior / Senior - Formula
直接设概率做不来的样子。。。
问了一下懂行的人发现需要设期望。
设 fu 为节点经过 u 的期望次数,设 E 为边集,du 表示节点 u 的度。
fu=(1−qp)(u,v)∈E∑dv1fv
因为有环,所以需要高斯消元一下。
那么在每个节点爆炸的概率即为 fu×qp。
总结一下,这道题告诉了我不仅是期望可以回归本质用概率搞,概率也可以用期望来整。
Problem. 3 Junior / Senior - Formula & Thinking
设 fu,v 表示同一时刻 Petya 在点 u,Vasya 在点 v 的概率。
fu,v=pupvfu,v+(u,u′)∈E∑(v,v′)∈E∑du′1−pu′dv′1−pv′fu′,v′+(u,u′)∈E∑pvdv′1−pu′fu′,v+(v,v′)∈E∑pudv′1−pv′fu,v′
完了。