OSDN Git Service

Fix Latex Formula
authorGuanghao Ye <yeguanghao1999@gmail.com>
Wed, 22 Aug 2018 21:40:48 +0000 (14:40 -0700)
committerGitHub <noreply@github.com>
Wed, 22 Aug 2018 21:40:48 +0000 (14:40 -0700)
docs/misc/mo-algo.md

index 012a179..8115ea2 100644 (file)
@@ -46,9 +46,9 @@ void solve() {
 \r
 接着就到了莫队算法的精髓了,下面我们用通俗易懂的初中方法来证明它的时间复杂度是$O(n\sqrt{n})$;\r
 \r
-证:令每一块中 $L$ 的最大值为 $max1,max2,max3,...,\operatorname{maxceil}(\sqrt{n})$。\r
+证:令每一块中 $L$ 的最大值为 $max_1,max_2,max_3,..., max_{\operatorname{ceil}(\sqrt{n})}$。\r
 \r
-由第一次排序可知,$max1 \le max2 \le ... \le \operatorname{maxceil}(\sqrt{n})$。\r
+由第一次排序可知,$max_1 \le max_2 \le ... \le max_{\operatorname{ceil}(\sqrt{n})}$。\r
 \r
 显然,对于每一块暴力求出第一个询问的时间复杂度为 $O(n)$。\r
 \r
@@ -56,21 +56,21 @@ void solve() {
 \r
 考虑 $R$:因为 $R$ 在块中已经排好序,所以在同一块修改完它的时间复杂度为 $O(n)$。对于所有块就是 $O(n\sqrt{n})$。\r
 \r
-重点分析 $L$:因为每一次改变的时间复杂度都是 $O(maxi-maxi-1)$ 的,所以在同一块中时间复杂度为 $O(\sqrt{n}*(max_i-max_{i-1}))$。\r
+重点分析 $L$:因为每一次改变的时间复杂度都是 $O(max_i-max_{i-1})$ 的,所以在同一块中时间复杂度为 $O(\sqrt{n}*(max_i-max_{i-1}))$。\r
 \r
 将每一块 $L$ 的时间复杂度合在一起,可以得到:\r
 \r
 $$\r
 \begin{aligned}\r
-对于 L 的总时间复杂度为 & = O(\sqrt{n}(max1-1)+\sqrt{n}(max2-max1)+\sqrt{n}(max3-max2)+...+\sqrt{n}(\operatorname{maxceil}(\sqrt{n})-\operatorname{maxceil}(\sqrt{n}-1))) \\\\\r
-& = O(\sqrt{n}*(max1-1+max2-max1+max3-max2+...+\operatorname{maxceil}(\sqrt{n}-1)-\operatorname{maxceil}(\sqrt{n}-2)+\operatorname{maxceil}(\sqrt{n})-\operatorname{maxceil}(\sqrt{n}-1))) \\\\\r
-& = O(\sqrt{n}*(\operatorname{maxceil}(\sqrt{n})-1))\r
+对于 L 的总时间复杂度为 & = O(\sqrt{n}(max_1-1)+\sqrt{n}(max_2-max_1)+\sqrt{n}(max_3-max_2)+...+\sqrt{n}(max_{\operatorname{ceil}(\sqrt{n})}-max_{\operatorname{ceil}(\sqrt{n})-1))} \\\\\r
+& = O(\sqrt{n}*(max_1-1+max_2-max_1+max_3-max_2+...+max_{\operatorname{ceil}(\sqrt{n})-1}-max_{\operatorname{ceil}(\sqrt{n})-2}+max_{\operatorname{ceil}(\sqrt{n})}-max_{\operatorname{ceil}(\sqrt{n})-1)}) \\\\\r
+& = O(\sqrt{n}*(max_{\operatorname{ceil}(\sqrt{n})-1}))\r
 \end{aligned}\r
 $$\r
 \r
 (裂项求和)\r
 \r
-由题可知 $\operatorname{maxceil}(\sqrt{n})$ 最大为 $n$,所以 $L$ 的总时间复杂度最坏情况下为 $O(n\sqrt{n})$。\r
+由题可知 $max_{\operatorname{ceil}(\sqrt{n})}$ 最大为 $n$,所以 $L$ 的总时间复杂度最坏情况下为 $O(n\sqrt{n})$。\r
 \r
 综上所述,莫队算法的时间复杂度为 $O(n\sqrt{n})$;\r
 \r