Loading

UOJ Easy Round #6 T3逃跑 题解

因为 $\sigma^2=E(x^2)-E^2(x)$,分别考虑求 $E(x)$ 和 $E^2(x)$。 ## $E(x)$ 设 $f_{i,x,y}$ 表示走 $i$ 步到 $(x,y)$ 的概率,$h_{i,x,y}$ 表示走 $i$ 步**第一次**到 $(x,y)$ 的概率,求 $f$ 直接dp,求 $h$ 可以容斥。 于是 $E(x)=\sum_{i=0}^n\sum_{x=-n}^n\sum_{y=-n}^nh_{i,x,y}$。 这部分复杂度 $\mathcal O(n^4)$。 ## $E(x^2)$ 简单推导得到 $E(x^2)=\sum_{(x_1,y_1)}\sum_{(x_2,y_2)}P(路径包含这两个点)$。 考虑如何求出 $P=P(路径包含这两个点)$。 有一个做法是求出 $a_i$ 表示在第 $i$ 步不经过 $(x_2,y_2)$ 第一次到 $(x_1,y_1)$ 的概率, $b_i$ 表示在第 $i$ 步不经过 $(x_1,y_1)$ 第一次到 $(x_2,y_2)$ 的概率。这两者可以 $n^2$ 卷积容斥求得。 但是在卷积过程中同时与 $(x_1,y_1),(x_2,y_2)$ 的具体坐标有关,无法拆开,只能做到 $O(n^6)$。 换个思路,设 $P(a_1a_2\cdots a_k)$ 表示从 $a_1$ 出发第一次到 $a_2$,再从 $a_2$ 出发第一次到 $a_k$,最后一直到 $a_k$ 的概率。首先简单考虑 $P(Oxy)+P(Oyx)$,发现这样算多了,因为再第一次到 $x$ 之前可能已经到 $y$ 了,反过来同理,所以要减去 $P(Oxyx)+P(Oyxy)$,但这样又见多了,于是最后答案表示成: $$ \begin{aligned} P=&P(Oxy)-P(Oxyx)+P(Oxyxy)-P(Oxyxyx)+\cdots\\ &=P(Oyx)-P(Oyxy)+P(Oyxyx)-P(Oyxyxy)+\cdots \end{aligned} $$ 将上下两部分分开看,以上部分为例,每多一个数,相当于是进行一次卷积再将符号取反。 可以先算出 $P(xy)-P(xyx)+P(xyxy)-P(xyxyx)+\cdots$,再和 $P(Ox)$ 卷积得来,发现前部分仅与向量 $(x,y)$ 有关,只有 $\mathcal O(n^2)$个。 对于 $(x,y)$ 每走一次路径长度至少增加 $|x|+|y|$,所以只会卷积 $\frac{n}{|x|+|y|}$ 次。 于是总共卷积 $\mathcal O(\sum_{i=0}^n\sum_{j=0}^n\frac{n}{i+j})=\mathcal O(\sum_{c=1}^n\frac nc\cdot c)=\mathcal O(n^2)$ 次。最后复杂度变为 $\mathcal O(n^4)$。 如果愿意写半在线卷积可以做到 $\mathcal O(n^3\log n)$(用多项式求逆)。
posted @ 2025-07-09 20:56  lupengheyyds  阅读(17)  评论(0)    收藏  举报