Unverified Commit 46b6add0 authored by hsfzLZH1's avatar hsfzLZH1 Committed by GitHub
Browse files

Update optimization.md

修复了LaTeX公式格式炸掉和变量名不统一的问题
parent 752c011b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ $f_{i,x}+f_{x+1,j}+cost_{i,j}+f_{i+1,y}+f_{y+1,j+1}+cost_{i+1,j+1}\le f_{i,x}+f_

$f_{x+1,j-1}+f_{y+1,j}\le f_{y+1,j-1}+f_{x+1,j}$

由于我们是令 $y=idx_{i,j-1},x\le y$ 时 $f_{i,j-1}$ 取得最小值,那么 $f_{i,j-1}(idx_{i,j-1}=x)$ 一定大于等于 $dp[i][j-1](idx_{i,j-1}=y)$ ,所以对于 $f_{i,j-1}$ 可以取到最优值的 $y$ ,所有小于它的值,对于 $f_{i,j}$ 来说,都没有 $y$ 优,所以最优决策一定不是小于$y$ 的,那么一定有 
由于我们是令 $y=idx_{i,j-1},x\le y$ 时 $f_{i,j-1}$ 取得最小值,那么 $f_{i,j-1}(idx_{i,j-1}=x)$ 一定大于等于 $f_{i,j-1}(idx_{i,j-1}=y)$ ,所以对于 $f_{i,j-1}$ 可以取到最优值的 $y$ ,所有小于它的值,对于 $f_{i,j}$ 来说,都没有 $y$ 优,所以最优决策一定不是小于 $y$ 的,那么一定有 
$idx_{i,j-1}\le idx_{i,j}$ 

证毕。
@@ -97,13 +97,13 @@ for(int i=n;i>=1;i--)
}
```

注意:由于在计算 $f_{i,j}$ 的时候需要知道 $s_{i,j-1}$ 和 $s_{i+1,j}$ 的值,所以 $i$ 的循环逆序。
注意:由于在计算 $f_{i,j}$ 的时候需要知道 $idx_{i,j-1}$ 和 $idx_{i+1,j}$ 的值,所以 $i$ 的循环逆序。

### 时间复杂度证明

计算 $f_{i,j}$ 时,我们要循环 $s_{i+1,j}-s_{i,j-1}$ 次,那么一共加起来会循环多少次呢?
计算 $f_{i,j}$ 时,我们要循环 $idx_{i+1,j}-idx_{i,j-1}$ 次,那么一共加起来会循环多少次呢?

因为 $\sum_{i=1}^{n-1}(idx_{i+1,i+1}-idx_{i,i})=idx{n,n}-idx{1,1}$ 很显然和 $n$ 同阶,那么它的 $n$ 倍就和 $n^2$ 同阶,时间复杂度是 $O(n^2)$。
因为 $\sum_{i=1}^{n-1}(idx_{i+1,i+1}-idx_{i,i})=idx_{n,n}-idx_{1,1}$ 很显然和 $n$ 同阶,那么它的 $n$ 倍就和 $n^2$ 同阶,时间复杂度是 $O(n^2)$。

### 几道练习题