OSDN Git Service

fix: remove '\u200b' character
authorLeoJacob <lzy4575@126.com>
Tue, 6 Nov 2018 14:04:02 +0000 (22:04 +0800)
committerLeoJacob <lzy4575@126.com>
Tue, 6 Nov 2018 14:04:02 +0000 (22:04 +0800)
Remove unicode '\u200b' (zero width space) character inserted by Typora.

docs/string/prefix-function.md
docs/string/z-function.md

index 0c19ebb..6dcdd3f 100644 (file)
@@ -165,7 +165,7 @@ for (int i = 0; i <= n; i++) ans[i]++;
 
 诚然,我们仍需证明该值为最优解。实际上,如果有一个比 $k$ 更小的压缩表示,那么前缀函数的最后一个值 $\pi[n - 1]$ 必定比 $n - k$ 要大。因此 $k$ 就是答案。
 
-现在假设 $n$ 不可以被 $k$ 整除,我们将通过反证法证明这意味着答案为 $n$[^1]。假设其最小压缩表示 $r$ 的长度为 $p$($p$ 整除 $n$),字符串 $s$ 被划分为 $n / p \ge 2$ 块。那么前缀函数的最后一个值 $\pi[n - 1]$ 必定大于 $n - p$(如果等于则 $n$ 可被 $k$ 整除),也即其所表示的后缀将部分的覆盖第一个块。现在考虑字符串的第二个块。该块有两种解释:第一种为 $r_0 r_1 \dots r_{p - 1}$,另一种为 $r_{p - k} r_{p - k + 1} \dots r_{p - 1} r_0 r_1 \dots r_{p - k - 1}$ 。由于两种解释对应同一个字符串,因此可得到 $p$ 个方程组成的方程组,该方程组可简写为 $r_{(i + k) \bmod p} = r_{i \bmod p}$,其中 $\cdot \bmod p$ 表示模 $p$ 意义下的最小非负剩余。
+现在假设 $n$ 不可以被 $k$ 整除,我们将通过反证法证明这意味着答案为 $n$[^1]。假设其最小压缩表示 $r$ 的长度为 $p$($p$ 整除 $n$),字符串 $s$ 被划分为 $n / p \ge 2$ 块。那么前缀函数的最后一个值 $\pi[n - 1]$ 必定大于 $n - p$(如果等于则 $n$ 可被 $k$ 整除),也即其所表示的后缀将部分的覆盖第一个块。现在考虑字符串的第二个块。该块有两种解释:第一种为 $r_0 r_1 \dots r_{p - 1}$,另一种为 $r_{p - k} r_{p - k + 1} \dots r_{p - 1} r_0 r_1 \dots r_{p - k - 1}$ 。由于两种解释对应同一个字符串,因此可得到 $p$ 个方程组成的方程组,该方程组可简写为 $r_{(i + k) \bmod p} = r_{i \bmod p}$,其中 $\cdot \bmod p$ 表示模 $p$ 意义下的最小非负剩余。
 
 $$
 \begin{gather}
index e297c7a..7493340 100644 (file)
@@ -177,7 +177,7 @@ vector<int> z_function(string s) {
 
 所以,我们已经找到了当将字符 $c$ 添加至 $s$ 后新出现的子串数目为 $\operatorname{length}(t) - z_{\max}$。
 
-作为其结果,该解法对于一个长度为 $n​$ 的字符串的时间复杂度为 $O(n^2)​$。
+作为其结果,该解法对于一个长度为 $n$ 的字符串的时间复杂度为 $O(n^2)$。
 
 值得注意的是,我们可以用同样的方法在 $O(n)$ 时间内,重新计算在头部添加一个字符,或者移除一个字符(从尾或者头)时的本质不同子串数目。
 
@@ -185,7 +185,7 @@ vector<int> z_function(string s) {
 
 给定一个长度为 $n$ 的字符串 $s$,找到其最短的 “压缩” 表示,即:寻找一个最短的字符串 $t$,使得 $s$ 可以被 $t$ 的一份或多份拷贝的拼接表示。
 
-其中一种解法为:计算 $s$ 的 Z 函数,从小到大循环所有满足 $i$ 整除 $n$ 的 $i$。在找到第一个满足 $i + z[i] = n$ 的 $i$ 时终止。那么该字符串 $s$ 可被压缩为长度 $i$ 的字符串。
+其中一种解法为:计算 $s$ 的 Z 函数,从小到大循环所有满足 $i$ 整除 $n$ 的 $i$。在找到第一个满足 $i + z[i] = n$ 的 $i$ 时终止。那么该字符串 $s$ 可被压缩为长度 $i$ 的字符串。
 
 该事实的证明同应用[前缀函数](./prefix-function.md)的解法证明一样。