Commit 371b9d80 authored by ir1d's avatar ir1d
Browse files

fix 行间公式

parent 13331b0e
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -148,7 +148,9 @@ $$

> **定理 2**    若函数 $w(l,r)$ 满足四边形不等式,记 $h_{l,r}=f_l+w(l,r)$ 表示从 $l$ 转移过来的状态 $r$,$k_{r}=\min\{l|f_{r}=h_{l,r}\}$ 表示最优决策点,则有
>
> $$ \forall r_1 \leq r_2:k_{r_1} \leq k_{r_2} $$
> $$
> \forall r_1 \leq r_2:k_{r_1} \leq k_{r_2}
> $$

记 $l_1=k_{r_1},\ l_2=k_{r_2}$,若 $l_1>l_2$,则 $l_2<l_1<r_1\leq r_2​$,根据四边形不等式有

@@ -199,7 +201,9 @@ void DP(int l, int r, int k_l, int k_r) {

题目大意:给定一个长度为 $n\leq 500000$ 的序列 $a_1, a_2, \cdots, a_n$,要求对于每一个 $1 \leq r \leq n$,找到最小的非负整数 $f_{r}$ 满足

$$\forall l\in\left[1,n\right]:a_l \leq a_r + f_{r} - \sqrt{|r-l|}$$
$$
\forall l\in\left[1,n\right]:a_l \leq a_r + f_{r} - \sqrt{|r-l|}
$$

显然,经过不等式变形,我们可以得到待求整数 $f_{r} = \max\limits_{l=1}^{n}\{a_l+\sqrt{r-l}-a_r\}$。不妨先考虑 $l < r$ 的情况(另外一种情况类似),此时我们可以得到状态转移方程:

+3 −1
Original line number Diff line number Diff line
@@ -123,7 +123,9 @@ $f(i,j)$ 表示前 $i$ 个数的平方和能否为 $j$,那么 $f(i,j)=\bigvee\

令原可重集为 $A$,其约数构成的可重集为 $A'$,我们要求 $A$ 中 $x$ 的个数,用[莫比乌斯反演](/math/mobius/) 推一推:

$$\begin{aligned}&\sum\limits_{i\in A}[\frac i x=1]\\=&\sum\limits_{i\in A}\sum\limits_{d|\frac i x}\mu(d)\\=&\sum\limits_{d\in A',x|d}\mu(\frac d x)\end{aligned}$$
$$
\begin{aligned}&\sum\limits_{i\in A}[\frac i x=1]\\=&\sum\limits_{i\in A}\sum\limits_{d|\frac i x}\mu(d)\\=&\sum\limits_{d\in A',x|d}\mu(\frac d x)\end{aligned}
$$

由于是模 $2$ 意义下,$-1$ 和 $1$ 是一样的,只用看 $\frac d x$ 有没有平方因子即可。所以,可以对值域内每个数预处理出其倍数中除以它不含平方因子的位置构成的 `bitset`,求答案的时候先按位与再 `count()` 就好了。

+10 −4
Original line number Diff line number Diff line
@@ -10,18 +10,24 @@

我们先将所有点按照 $x_i$ 为第一关键字、$y_i$ 为第二关键字排序,并以点 $p_m (m = \lfloor \frac{n}{2} \rfloor)$ 为分界点,拆分点集为 $A_1,A_2$:

$$A_1 = \{p_i \ \big | \ i = 0 \ldots m \}\\
A_2 = \{p_i \ \big | \ i = m + 1 \ldots n-1 \}$$
$$
A_1 = \{p_i \ \big | \ i = 0 \ldots m \}\\
A_2 = \{p_i \ \big | \ i = m + 1 \ldots n-1 \}
$$

并递归下去,求出两点集各自内部的最近点对,设距离为 $h_1,h_2$,取较小值设为 $h$。

现在该合并了!我们试图找到这样的一组点对,其中一个属于 $A_1$,另一个属于 $A_2$,且二者距离小于 $h$。因此我们将所有横坐标与 $x_m$ 的差小于 $h$ 的点放入集合 $B$:

$$B = \{ p_i \ \big | \ \lvert x_i - x_m \rvert < h \}$$
$$
B = \{ p_i \ \big | \ \lvert x_i - x_m \rvert < h \}
$$

对于 $B$ 中的每个点 $p_i$,我们当前目标是找到一个同样在 $B$ 中、且到其距离小于 $h$ 的点。为了避免两个点之间互相考虑,我们只考虑那些纵坐标小于 $y_i$ 的点。显然对于一个合法的点 $p_j$,$y_i - y_j$ 必须小于 $h$。于是我们获得了一个集合 $C(p_i)$:

$$C(p_i) = \{ p_j\ \big |\ p_j \in B,\ y_i - h < y_j \le y_i \}$$
$$
C(p_i) = \{ p_j\ \big |\ p_j \in B,\ y_i - h < y_j \le y_i \}
$$

如果我们将 $B$ 中的点按照 $y_i$ 排序,$C(p_i)$ 将很容易得到,即紧邻 $p_i$ 的连续几个点。

+9 −3
Original line number Diff line number Diff line
@@ -172,13 +172,19 @@ $$

    上述三个矩阵的行列式记为 $d_{n-1}, a_{n-1}, b_{n-1}$。注意到 $d_n$ 是三对角行列式,采用类似的展开的方法可以得到 $d_n$ 具有递推公式 $d_n=3d_{n-1}-d_{n-2}$。类似地,采用展开的方法可以得到 $a_{n-1}=-d_{n-2}-1$,以及 $(-1)^n b_{n-1}=-d_{n-2}-1$。将这些递推公式代入上式,得到

    $$\det M_n = 3d_{n-1}-2d_{n-2}-2$$
    $$
    \det M_n = 3d_{n-1}-2d_{n-2}-2
    $$

    $$d_n = 3d_{n-1}-d_{n-2}$$
    $$
    d_n = 3d_{n-1}-d_{n-2}
    $$

    于是猜测 $\det M_n$ 也是非齐次的二阶线性递推。采用待定系数法可以得到最终的递推公式为

    $$\det M_n = 3\det M_{n-1} - \det M_{n-2} + 2$$
    $$
    \det M_n = 3\det M_{n-1} - \det M_{n-2} + 2
    $$

    改写成 $(\det M_n+2) = 3(\det M_{n-1}+2) - (\det M_{n-2} + 2)$ 后,采用矩阵快速幂即可求出答案。

+3 −1
Original line number Diff line number Diff line
@@ -849,7 +849,9 @@ $$

容易知道  

$$\sum_{i=1}^{n}\sum_{j=1}^{m}ij=\frac{n(n+1)}{2}\cdot \frac{m(m+1)}{2}$$
$$
\sum_{i=1}^{n}\sum_{j=1}^{m}ij=\frac{n(n+1)}{2}\cdot \frac{m(m+1)}{2}
$$

设 $sum(n,m)=\sum_{i=1}^{n}\sum_{j=1}^{m}ij$ ,继续接着前面的往下推  

Loading