Unverified Commit aab6243e authored by Shuhao Zhang's avatar Shuhao Zhang Committed by GitHub
Browse files

make fork up-to-date

parents 1d2a5e1f a6596f6a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ int binary_search(int start, int end, int key) {

请注意,必须是有序数组,否则答案是错误的。

关于具体使用方法,请参见 [STL 页面](/ds/stl/)
关于具体使用方法,请参见 [STL 页面](../lang/csl/index.md)

### 二分答案

+1 −1
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ LeetCode 有递归专题练习, [点这里去做题](https://leetcode.com/expl

比较 naive 的递归实现可能递归次数太多,容易超时。

怎么优化呢?详见 [搜索优化](/search/opt)[记忆化搜索](/dp/memo/)
怎么优化呢?详见 [搜索优化](../search/opt.md)[记忆化搜索](../dp/memo.md)

## 分治算法

+2 −2
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@

有些题的排序方法非常显然,如 [Luogu P1209\[USACO1.3\]修理牛棚 Barn Repair](https://www.luogu.org/problemnew/show/P1209) 就是将输入数组差分后排序模拟求值。

然而有些时候很难直接一下子看出排序方法,比如 [NOIP 2012 国王游戏](https://vijos.org/p/1779) 就很容易凭直觉而错误地以 $a$ 或 $b$ 为关键字排序,过样例之后提交就发现 WA 了 QAQ。一个~~众所周知的~~常见办法就是尝试交换数组相邻的两个元素来 **推导** 出正确的排序方法。我们假设这题输入的俩个数用一个结构体来保存
然而有些时候很难直接一下子看出排序方法,比如 [NOIP 2012 国王游戏](https://vijos.org/p/1779) 就很容易凭直觉而错误地以 $a$ 或 $b$ 为关键字排序,过样例之后提交就发现 WA 了 QAQ。一个常见办法就是尝试交换数组相邻的两个元素来 **推导** 出正确的排序方法。我们假设这题输入的俩个数用一个结构体来保存

```cpp
struct {
@@ -57,7 +57,7 @@ $$
\frac{m \cdot v[i + 1].a} {v[i].b}
$$

如果交前更优当且仅当
如果交前更优当且仅当

$$
\max (\frac{m} {v[i].b}, \frac{m \times v[i].a} {v[i + 1].b})  < \max (\frac{m} {v[i + 1].b}, \frac{m \times v[i + 1].a} {v[i].b})
+1 −1
Original line number Diff line number Diff line
对所有记录建 [](/ds/heap/) 
对所有记录建 [](../ds/heap.md) 

每次取出堆顶元素,就可以依次得到排好序的序列。

+2 −2
Original line number Diff line number Diff line
## 算法

归并排序是一种采用了 [分治](/basic/divide-and-conquer) 思想的排序算法,其本质是一种 [CDQ 分治](/misc/cdq-divide)
归并排序是一种采用了 [分治](./divide-and-conquer.md) 思想的排序算法,其本质是一种 [CDQ 分治](../misc/cdq-divide.md)

归并排序分为三个过程:

@@ -77,7 +77,7 @@ public class Merge {

所谓逆序对,就是满足 $a_{i} > a_{j}$ 且 $i < j$ 的数对 $(i, j)$ 。

可以用 [树状数组](/ds/bit)[线段树](/ds/segment/) 等数据结构来求,也可以用归并排序来求。
可以用 [树状数组](../ds/bit.md)[线段树](../ds/seg.md) 等数据结构来求,也可以用归并排序来求。

具体来说,上面归并排序中间注释掉的 `ans += mid - p` 就是在统计逆序对个数。

Loading