Skip to content

Commit

Permalink
fix: incorrect links (OI-wiki#6055) (OI-wiki#6056)
Browse files Browse the repository at this point in the history
* fix: fix incorrect links

* fix xx.md/#yy problem

* fix more xx.md/#yy problem

* fix more bug
  • Loading branch information
ChineseHamberger authored Dec 11, 2024
1 parent 499f627 commit ef12ce5
Show file tree
Hide file tree
Showing 12 changed files with 31 additions and 31 deletions.
2 changes: 1 addition & 1 deletion docs/basic/binary.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ int binary_search(int start, int end, int key) {
```
???+ note
参考 [编译优化 #位运算代替乘法](/lang/optimizations/#%E4%BD%8D%E8%BF%90%E7%AE%97%E4%BB%A3%E6%9B%BF%E4%B9%98%E6%B3%95),对于 $n$ 是有符号数的情况,当你可以保证 $n\ge 0$ 时,`n >> 1` 比 `n / 2` 指令数更少。
参考 [编译优化 #位运算代替乘法](../lang/optimizations.md#%E4%BD%8D%E8%BF%90%E7%AE%97%E4%BB%A3%E6%9B%BF%E4%B9%98%E6%B3%95),对于 $n$ 是有符号数的情况,当你可以保证 $n\ge 0$ 时,`n >> 1` 比 `n / 2` 指令数更少。
### 最大值最小化
Expand Down
2 changes: 1 addition & 1 deletion docs/contest/common-mistakes.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ author: H-J-Granger, orzAtalod, ksyx, Ir1d, Chrogeek, Enter-tainer, yiyangit, sh
???+ warning
在正式比赛中会尽量保证选手答题的环境和最终测试的环境相同。

本节内容仅适用于模拟赛等情况,而我们也建议出题人尽量让数据符合 [数据格式](../problemsetting/#数据的格式)。
本节内容仅适用于模拟赛等情况,而我们也建议出题人尽量让数据符合 [数据格式](problemsetting.md#数据的格式)。

不同的操作系统使用不同的符号来标记换行,以下为几种常用系统的换行符:

Expand Down
2 changes: 1 addition & 1 deletion docs/ds/dividing.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ author: Xarfa

划分树是一种来解决区间第 $K$ 大的一种数据结构,其常数、理解难度都要比主席树低很多。同时,划分树紧贴「第 $K$ 大」,所以是一种基于排序的一种数据结构。

**建议先学完 [主席树](../persistent-seg/#主席树) 再看划分树哦**
**建议先学完 [主席树](persistent-seg.md#主席树) 再看划分树哦**

## 过程

Expand Down
12 changes: 6 additions & 6 deletions docs/ds/fenwick.md
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ $c$ 数组就是用来储存原始数组 $a$ 某段区间的和的,也就是

比如给定序列 $a = (5, 1, 4)$ 要求建树,直接看作对 $a[1]$ 单点加 $5$,对 $a[2]$ 单点加 $1$,对 $a[3]$ 单点加 $4$ 即可。

也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](./#thetan-建树) 一节。
也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](#thetan-建树) 一节。

### 复杂度分析

Expand All @@ -366,7 +366,7 @@ $c$ 数组就是用来储存原始数组 $a$ 某段区间的和的,也就是

## 区间加区间和

前置知识:[前缀和 & 差分](../../basic/prefix-sum/)
前置知识:[前缀和 & 差分](../basic/prefix-sum.md)

该问题可以使用两个树状数组维护差分数组解决。

Expand Down Expand Up @@ -554,7 +554,7 @@ $$

### 子矩阵加,求子矩阵和

前置知识:[前缀和 & 差分](../../basic/prefix-sum/) 和本页面 [区间加区间和](./#区间加区间和) 一节。
前置知识:[前缀和 & 差分](../basic/prefix-sum.md) 和本页面 [区间加区间和](#区间加区间和) 一节。

和一维树状数组的「区间加区间和」问题类似,考虑维护差分数组。

Expand Down Expand Up @@ -671,7 +671,7 @@ $$

很明显,$b$ 的大小和 $a$ 的值域有关。

若原数列值域过大,且重要的不是具体值而是值与值之间的相对大小关系,常 [离散化](../../misc/discrete/) 原数组后再建立权值数组。
若原数列值域过大,且重要的不是具体值而是值与值之间的相对大小关系,常 [离散化](../misc/discrete.md) 原数组后再建立权值数组。

另外,权值数组是原数组无序性的一种表示:它重点描述数组的元素内容,忽略了数组的顺序,若两数组只是顺序不同,所含内容一致,则它们的权值数组相同。

Expand Down Expand Up @@ -843,7 +843,7 @@ $i$ 按照 $5 \to 1$ 扫:
- 设 $u = s \times 2^{k + 1} + 2^k$,则其儿子数量为 $k = \log_2\operatorname{lowbit}(u)$,编号分别为 $u - 2^t(0 \le t < k)$。
- $u$ 的所有儿子对应 $c$ 的管辖区间恰好拼接成 $[l(u), u - 1]$。

关于这两条性质的含义及证明,都可以在本页面的 [树状数组与其树形态的性质](./#树状数组与其树形态的性质) 一节找到。
关于这两条性质的含义及证明,都可以在本页面的 [树状数组与其树形态的性质](#树状数组与其树形态的性质) 一节找到。

更新 $a[x]$ 后,我们只需要更新满足在树状数组树形态上,满足 $y$ 是 $x$ 的祖先的 $c[y]$。

Expand Down Expand Up @@ -875,7 +875,7 @@ $i$ 按照 $5 \to 1$ 扫:

可以考虑拆成 $n$ 个单点修改,$\Theta(n\log^2n)$ 建树。

也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](./#thetan-建树) 一节的方法一。
也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](#thetan-建树) 一节的方法一。

## Tricks

Expand Down
2 changes: 1 addition & 1 deletion docs/ds/persistent-seg.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
主席树全称是可持久化权值线段树,参见 [知乎讨论](https://www.zhihu.com/question/59195374)

???+ warning "关于函数式线段树"
**函数式线段树** 是指使用函数式编程思想的线段树。在函数式编程思想中,将计算机运算视为数学函数,并避免可改变的状态或变量。不难发现,函数式线段树是 [完全可持久化](../persistent/#完全可持久化-fully-persistent) 的。
**函数式线段树** 是指使用函数式编程思想的线段树。在函数式编程思想中,将计算机运算视为数学函数,并避免可改变的状态或变量。不难发现,函数式线段树是 [完全可持久化](persistent.md#完全可持久化-fully-persistent) 的。

## 引入

Expand Down
2 changes: 1 addition & 1 deletion docs/graph/bfs.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ BFS 序列通常也不唯一。

## 双端队列 BFS

如果你不了解双端队列 `deque` 的话,请参阅 [deque 相关章节](../../lang/csl/sequence-container/#deque)
如果你不了解双端队列 `deque` 的话,请参阅 [deque 相关章节](../lang/csl/sequence-container.md#deque)

双端队列 BFS 又称 0-1 BFS。

Expand Down
4 changes: 2 additions & 2 deletions docs/graph/tree-ahu.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ author: Backl1ght

AHU 算法用于判断两棵有根树是否同构。

判断树同构外还有一种常见的做法是 [树哈希](/graph/tree-hash)
判断树同构外还有一种常见的做法是 [树哈希](tree-hash.md)

前置知识:[树基础](/graph/tree-basic)[树的重心](/graph/tree-centroid)
前置知识:[树基础](tree-basic.md)[树的重心](tree-centroid.md)

建议配合参考资料里给的例子观看。

Expand Down
2 changes: 1 addition & 1 deletion docs/lang/new.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ int main() {

## Lambda 表达式

> 请参考 [Lambda 表达式](../lambda) 页面。
> 请参考 [Lambda 表达式](lambda.md) 页面。
## decltype 说明符

Expand Down
24 changes: 12 additions & 12 deletions docs/lang/pas-cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ std::cout << "Hello World!" << std::endl;
`std::cout` 是输出( `cout` 即 C-out)的命令。你可能看过有些 C++ 程序中直接写的是 `cout`

??? note "有关 std:: 前缀"
有关 `std::` 这个前缀的问题,请见 [这节](../basic/#cin-与-cout) 底下的注释「什么是 std?」。
有关 `std::` 这个前缀的问题,请见 [这节](basic.md#cin-与-cout) 底下的注释「什么是 std?」。

中间的 `<<` 很形象地表示流动,其实它就是表示输出怎么「流动」的。这句代码的意思就是, `"Hello World!"` 会先被推到输出流,之后 `std::endl` 再被推到输出流。

Expand Down Expand Up @@ -173,7 +173,7 @@ int a = 0, b = 0, c = 0;
#### 简单练习

1. 重写一遍代码,提交到 OJ 上,并且 AC。
2. 更多的输入输出语法参考 [这节内容](../basic/#scanf-与-printf) ,并试着了解 C++ 的格式化输出。
2. 更多的输入输出语法参考 [这节内容](basic.md#scanf-与-printf) ,并试着了解 C++ 的格式化输出。

### 结束语与下一步

Expand Down Expand Up @@ -399,7 +399,7 @@ C++ 访问数组成员,与 Pascal 类似,不过有很重要的区别:数

扩展阅读:

- [序列式容器 - OI Wiki](../csl/sequence-container/)
- [序列式容器 - OI Wiki](csl/sequence-container.md)

#### 字符串:标准库类型 String

Expand All @@ -423,7 +423,7 @@ int main() {

扩展阅读:

- [string - OI Wiki](../csl/string/)
- [string - OI Wiki](csl/string.md)

#### C 风格数组 Array

Expand All @@ -433,15 +433,15 @@ C 风格的数组与指针有密切关系,所以此处不多展开。

扩展阅读:

- [数组 - OI Wiki](../array/)
- [数组 - OI Wiki](array.md)

## 重要不同之处 Differences

### 变量作用域 Scope:全局变量与局部变量

C++ 几乎可以在 **任何地方** 声明变量。

以下对于 C++ 的变量作用域的介绍摘自 [变量作用域 - OI Wiki](../var/#变量作用域)
以下对于 C++ 的变量作用域的介绍摘自 [变量作用域 - OI Wiki](var.md#变量作用域)

> 作用域是变量可以发挥作用的代码块。
>
Expand Down Expand Up @@ -733,9 +733,9 @@ C++ 中函数传递参数还有其他方法,其中一种是 **直接使用全
### C++ 标准库
C++ 标准库中 `<algorithm>` 有很多有用的函数比如快排、二分查找等,可以直接调用。请参考这个页面: [STL 算法 - OI Wiki](../csl/algorithm/)
C++ 标准库中 `<algorithm>` 有很多有用的函数比如快排、二分查找等,可以直接调用。请参考这个页面: [STL 算法 - OI Wiki](csl/algorithm.md)
还有 STL 容器,比如数组、向量(可变大小的数组)、队列、栈等,附带很多函数。请参考这个页面: [STL 容器简介 - OI Wiki](../csl/container/)
还有 STL 容器,比如数组、向量(可变大小的数组)、队列、栈等,附带很多函数。请参考这个页面: [STL 容器简介 - OI Wiki](csl/container.md)
如果要找关于字符串操作的函数见
Expand All @@ -744,16 +744,16 @@ C++ 标准库中 `<algorithm>` 有很多有用的函数比如快排、二分查
C/C++ 的指针是很灵活的东西,如果想要彻底理解指针,建议找本书或者参考手册仔细阅读。
- [指针 - OI Wiki](../pointer)
- [指针 - OI Wiki](pointer.md)
### 错误排查与技巧
- [常见错误 - OI Wiki](../../contest/common-mistakes/)
- [常见技巧 - OI Wiki](../../contest/common-tricks/)
- [常见错误 - OI Wiki](../contest/common-mistakes.md)
- [常见技巧 - OI Wiki](../contest/common-tricks.md)
### C++ 语言资料
- [学习资源 - OI Wiki](../../contest/resources/)
- [学习资源 - OI Wiki](../contest/resources.md)
- [cppreference.com](https://zh.cppreference.com/) - 最重要的 C/C++ 参考资料
- [C++ 教程 - 菜鸟教程](https://www.runoob.com/cplusplus/cpp-tutorial.html)
- [C++ Language - C++ Tutorials](https://www.cplusplus.com/doc/tutorial/)
Expand Down
6 changes: 3 additions & 3 deletions docs/math/coordinate.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ $$

两坐标系下 $z$ 的值是相同的。

$(x,y)$ 与 $(\rho, \varphi)$ 的相互转换参见上文 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换)
$(x,y)$ 与 $(\rho, \varphi)$ 的相互转换参见上文 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换)

## 空间球坐标系

Expand Down Expand Up @@ -218,7 +218,7 @@ $$

### 空间直角坐标系与球坐标系的相互转换

可以结合上文 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换) 和上文 [柱坐标系与球坐标系的相互转换](./#柱坐标系与球坐标系的相互转换) 一起使用,或直接使用下面的公式:
可以结合上文 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换) 和上文 [柱坐标系与球坐标系的相互转换](#柱坐标系与球坐标系的相互转换) 一起使用,或直接使用下面的公式:

从空间直角坐标系到球坐标系:

Expand All @@ -230,7 +230,7 @@ r &= \sqrt{x^2 + y^2 + z^2} \\
\end{aligned}
$$

其中 $\operatorname{atan2}$ 的定义见 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换)
其中 $\operatorname{atan2}$ 的定义见 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换)

注意对于空间直角坐标系下的点 $(0,0,0)$,其球坐标的 $\vartheta$ 和 $\varphi$ 取值不明确。

Expand Down
2 changes: 1 addition & 1 deletion docs/math/number-theory/gcd.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@
上述代码参考了 [libstdc++](https://github.com/gcc-mirror/gcc/blob/1667962ae755db27965778b8c8c684c6c0c4da21/libstdc%2B%2B-v3/include/std/numeric#L173)[MSVC](https://github.com/microsoft/STL/blob/9aca22477df4eed3222b4974746ee79129eb44e7/stl/inc/numeric#L591) 对 C++17 `std::gcd` 的实现。在 `unsigned int``unsigned long long` 的数据范围下,如果可以以极快的速度计算 `countr_zero`,则 Stein 算法比欧几里得算法来得快,但反之则可能比欧几里得算法慢。

???+ note "关于 countr_zero"
1. gcc 有 [内建函数](../../bit/#内建函数) `__builtin_ctz`(32 位)或 `__builtin_ctzll`(64 位)可替换上述代码的 `countr_zero`
1. gcc 有 [内建函数](../bit.md#内建函数) `__builtin_ctz`(32 位)或 `__builtin_ctzll`(64 位)可替换上述代码的 `countr_zero`
2. 从 C++20 开始,头文件 `<bit>` 包含了 [`std::countr_zero`](https://en.cppreference.com/w/cpp/numeric/countr_zero)
3. 如果不使用不在标准库的函数,又无法使用 C++20 标准,下面的代码是一种在 Word-RAM with multiplication 模型下经过预处理后 $O(1)$ 的实现:

Expand Down
2 changes: 1 addition & 1 deletion docs/tools/editor/npp.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Notepad++ 是 Windows 操作系统下的文本编辑器,支持多国语言、

有了这个功能,就可以不用费心地担心意外情况代码丢失啦!

但是,这个功能只是为你的文件拍了一个快照,并没有真正保存,所以还是建议要有良好的保存习惯。或者说可以去自带插件商店安装 "Auto Save" 插件(详见 [高级玩法 -> 插件](./#插件),下同)
但是,这个功能只是为你的文件拍了一个快照,并没有真正保存,所以还是建议要有良好的保存习惯。或者说可以去自带插件商店安装 "Auto Save" 插件(详见 [高级玩法 -> 插件](#插件),下同)

### 书签功能

Expand Down

0 comments on commit ef12ce5

Please sign in to comment.