From ef12ce544d765f8701aa3ba26573c6169ef93a5d Mon Sep 17 00:00:00 2001 From: FinParker <101547635+ChineseHamberger@users.noreply.github.com> Date: Wed, 11 Dec 2024 21:43:19 +0800 Subject: [PATCH] fix: incorrect links (#6055) (#6056) * fix: fix incorrect links * fix xx.md/#yy problem * fix more xx.md/#yy problem * fix more bug --- docs/basic/binary.md | 2 +- docs/contest/common-mistakes.md | 2 +- docs/ds/dividing.md | 2 +- docs/ds/fenwick.md | 12 ++++++------ docs/ds/persistent-seg.md | 2 +- docs/graph/bfs.md | 2 +- docs/graph/tree-ahu.md | 4 ++-- docs/lang/new.md | 2 +- docs/lang/pas-cpp.md | 24 ++++++++++++------------ docs/math/coordinate.md | 6 +++--- docs/math/number-theory/gcd.md | 2 +- docs/tools/editor/npp.md | 2 +- 12 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/basic/binary.md b/docs/basic/binary.md index f052a14d0d01e..a2faca4b39555 100644 --- a/docs/basic/binary.md +++ b/docs/basic/binary.md @@ -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` 指令数更少。 ### 最大值最小化 diff --git a/docs/contest/common-mistakes.md b/docs/contest/common-mistakes.md index 737e3b4c1630f..80cf37f49534d 100644 --- a/docs/contest/common-mistakes.md +++ b/docs/contest/common-mistakes.md @@ -225,7 +225,7 @@ author: H-J-Granger, orzAtalod, ksyx, Ir1d, Chrogeek, Enter-tainer, yiyangit, sh ???+ warning 在正式比赛中会尽量保证选手答题的环境和最终测试的环境相同。 - 本节内容仅适用于模拟赛等情况,而我们也建议出题人尽量让数据符合 [数据格式](../problemsetting/#数据的格式)。 + 本节内容仅适用于模拟赛等情况,而我们也建议出题人尽量让数据符合 [数据格式](problemsetting.md#数据的格式)。 不同的操作系统使用不同的符号来标记换行,以下为几种常用系统的换行符: diff --git a/docs/ds/dividing.md b/docs/ds/dividing.md index 1a487b9d7c6e4..a5ab1c171493e 100644 --- a/docs/ds/dividing.md +++ b/docs/ds/dividing.md @@ -4,7 +4,7 @@ author: Xarfa 划分树是一种来解决区间第 $K$ 大的一种数据结构,其常数、理解难度都要比主席树低很多。同时,划分树紧贴「第 $K$ 大」,所以是一种基于排序的一种数据结构。 -**建议先学完 [主席树](../persistent-seg/#主席树) 再看划分树哦** +**建议先学完 [主席树](persistent-seg.md#主席树) 再看划分树哦** ## 过程 diff --git a/docs/ds/fenwick.md b/docs/ds/fenwick.md index 0b9ca8f30b29b..4a8fccd0419fc 100644 --- a/docs/ds/fenwick.md +++ b/docs/ds/fenwick.md @@ -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-建树) 一节。 ### 复杂度分析 @@ -366,7 +366,7 @@ $c$ 数组就是用来储存原始数组 $a$ 某段区间的和的,也就是 ## 区间加区间和 -前置知识:[前缀和 & 差分](../../basic/prefix-sum/)。 +前置知识:[前缀和 & 差分](../basic/prefix-sum.md)。 该问题可以使用两个树状数组维护差分数组解决。 @@ -554,7 +554,7 @@ $$ ### 子矩阵加,求子矩阵和 -前置知识:[前缀和 & 差分](../../basic/prefix-sum/) 和本页面 [区间加区间和](./#区间加区间和) 一节。 +前置知识:[前缀和 & 差分](../basic/prefix-sum.md) 和本页面 [区间加区间和](#区间加区间和) 一节。 和一维树状数组的「区间加区间和」问题类似,考虑维护差分数组。 @@ -671,7 +671,7 @@ $$ 很明显,$b$ 的大小和 $a$ 的值域有关。 - 若原数列值域过大,且重要的不是具体值而是值与值之间的相对大小关系,常 [离散化](../../misc/discrete/) 原数组后再建立权值数组。 + 若原数列值域过大,且重要的不是具体值而是值与值之间的相对大小关系,常 [离散化](../misc/discrete.md) 原数组后再建立权值数组。 另外,权值数组是原数组无序性的一种表示:它重点描述数组的元素内容,忽略了数组的顺序,若两数组只是顺序不同,所含内容一致,则它们的权值数组相同。 @@ -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]$。 @@ -875,7 +875,7 @@ $i$ 按照 $5 \to 1$ 扫: 可以考虑拆成 $n$ 个单点修改,$\Theta(n\log^2n)$ 建树。 -也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](./#thetan-建树) 一节的方法一。 +也有 $\Theta(n)$ 的建树方法,见本页面 [$\Theta(n)$ 建树](#thetan-建树) 一节的方法一。 ## Tricks diff --git a/docs/ds/persistent-seg.md b/docs/ds/persistent-seg.md index 8cd24c0ca98d1..f4f5e72cb2463 100644 --- a/docs/ds/persistent-seg.md +++ b/docs/ds/persistent-seg.md @@ -3,7 +3,7 @@ 主席树全称是可持久化权值线段树,参见 [知乎讨论](https://www.zhihu.com/question/59195374)。 ???+ warning "关于函数式线段树" - **函数式线段树** 是指使用函数式编程思想的线段树。在函数式编程思想中,将计算机运算视为数学函数,并避免可改变的状态或变量。不难发现,函数式线段树是 [完全可持久化](../persistent/#完全可持久化-fully-persistent) 的。 + **函数式线段树** 是指使用函数式编程思想的线段树。在函数式编程思想中,将计算机运算视为数学函数,并避免可改变的状态或变量。不难发现,函数式线段树是 [完全可持久化](persistent.md#完全可持久化-fully-persistent) 的。 ## 引入 diff --git a/docs/graph/bfs.md b/docs/graph/bfs.md index 682ccaa4dc489..ecb259d12b519 100644 --- a/docs/graph/bfs.md +++ b/docs/graph/bfs.md @@ -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。 diff --git a/docs/graph/tree-ahu.md b/docs/graph/tree-ahu.md index bec9e2a70ad1d..e39cf166f5a8a 100644 --- a/docs/graph/tree-ahu.md +++ b/docs/graph/tree-ahu.md @@ -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) 建议配合参考资料里给的例子观看。 diff --git a/docs/lang/new.md b/docs/lang/new.md index b0ef91518697d..e9a4cb25d36c2 100644 --- a/docs/lang/new.md +++ b/docs/lang/new.md @@ -237,7 +237,7 @@ int main() { ## Lambda 表达式 -> 请参考 [Lambda 表达式](../lambda) 页面。 +> 请参考 [Lambda 表达式](lambda.md) 页面。 ## decltype 说明符 diff --git a/docs/lang/pas-cpp.md b/docs/lang/pas-cpp.md index c5bc0fe060961..7cadda46107e1 100644 --- a/docs/lang/pas-cpp.md +++ b/docs/lang/pas-cpp.md @@ -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` 再被推到输出流。 @@ -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++ 的格式化输出。 ### 结束语与下一步 @@ -399,7 +399,7 @@ C++ 访问数组成员,与 Pascal 类似,不过有很重要的区别:数 扩展阅读: -- [序列式容器 - OI Wiki](../csl/sequence-container/) +- [序列式容器 - OI Wiki](csl/sequence-container.md) #### 字符串:标准库类型 String @@ -423,7 +423,7 @@ int main() { 扩展阅读: -- [string - OI Wiki](../csl/string/) +- [string - OI Wiki](csl/string.md) #### C 风格数组 Array @@ -433,7 +433,7 @@ C 风格的数组与指针有密切关系,所以此处不多展开。 扩展阅读: -- [数组 - OI Wiki](../array/) +- [数组 - OI Wiki](array.md) ## 重要不同之处 Differences @@ -441,7 +441,7 @@ C 风格的数组与指针有密切关系,所以此处不多展开。 C++ 几乎可以在 **任何地方** 声明变量。 -以下对于 C++ 的变量作用域的介绍摘自 [变量作用域 - OI Wiki](../var/#变量作用域) : +以下对于 C++ 的变量作用域的介绍摘自 [变量作用域 - OI Wiki](var.md#变量作用域) : > 作用域是变量可以发挥作用的代码块。 > @@ -733,9 +733,9 @@ C++ 中函数传递参数还有其他方法,其中一种是 **直接使用全 ### C++ 标准库 -C++ 标准库中 `` 有很多有用的函数比如快排、二分查找等,可以直接调用。请参考这个页面: [STL 算法 - OI Wiki](../csl/algorithm/) 。 +C++ 标准库中 `` 有很多有用的函数比如快排、二分查找等,可以直接调用。请参考这个页面: [STL 算法 - OI Wiki](csl/algorithm.md) 。 -还有 STL 容器,比如数组、向量(可变大小的数组)、队列、栈等,附带很多函数。请参考这个页面: [STL 容器简介 - OI Wiki](../csl/container/) 。 +还有 STL 容器,比如数组、向量(可变大小的数组)、队列、栈等,附带很多函数。请参考这个页面: [STL 容器简介 - OI Wiki](csl/container.md) 。 如果要找关于字符串操作的函数见 @@ -744,16 +744,16 @@ C++ 标准库中 `` 有很多有用的函数比如快排、二分查 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/) diff --git a/docs/math/coordinate.md b/docs/math/coordinate.md index 5ce036d393078..885c8285fcd77 100644 --- a/docs/math/coordinate.md +++ b/docs/math/coordinate.md @@ -169,7 +169,7 @@ $$ 两坐标系下 $z$ 的值是相同的。 -$(x,y)$ 与 $(\rho, \varphi)$ 的相互转换参见上文 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换)。 +$(x,y)$ 与 $(\rho, \varphi)$ 的相互转换参见上文 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换)。 ## 空间球坐标系 @@ -218,7 +218,7 @@ $$ ### 空间直角坐标系与球坐标系的相互转换 -可以结合上文 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换) 和上文 [柱坐标系与球坐标系的相互转换](./#柱坐标系与球坐标系的相互转换) 一起使用,或直接使用下面的公式: +可以结合上文 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换) 和上文 [柱坐标系与球坐标系的相互转换](#柱坐标系与球坐标系的相互转换) 一起使用,或直接使用下面的公式: 从空间直角坐标系到球坐标系: @@ -230,7 +230,7 @@ r &= \sqrt{x^2 + y^2 + z^2} \\ \end{aligned} $$ -其中 $\operatorname{atan2}$ 的定义见 [平面直角坐标系与极坐标系的相互转换](./#平面直角坐标系与极坐标系的相互转换)。 +其中 $\operatorname{atan2}$ 的定义见 [平面直角坐标系与极坐标系的相互转换](#平面直角坐标系与极坐标系的相互转换)。 注意对于空间直角坐标系下的点 $(0,0,0)$,其球坐标的 $\vartheta$ 和 $\varphi$ 取值不明确。 diff --git a/docs/math/number-theory/gcd.md b/docs/math/number-theory/gcd.md index 6a055f72af7db..f338590262211 100644 --- a/docs/math/number-theory/gcd.md +++ b/docs/math/number-theory/gcd.md @@ -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 开始,头文件 `` 包含了 [`std::countr_zero`](https://en.cppreference.com/w/cpp/numeric/countr_zero); 3. 如果不使用不在标准库的函数,又无法使用 C++20 标准,下面的代码是一种在 Word-RAM with multiplication 模型下经过预处理后 $O(1)$ 的实现: diff --git a/docs/tools/editor/npp.md b/docs/tools/editor/npp.md index 9d07a3aa8aba5..fe695341b4bb7 100644 --- a/docs/tools/editor/npp.md +++ b/docs/tools/editor/npp.md @@ -46,7 +46,7 @@ Notepad++ 是 Windows 操作系统下的文本编辑器,支持多国语言、 有了这个功能,就可以不用费心地担心意外情况代码丢失啦! -但是,这个功能只是为你的文件拍了一个快照,并没有真正保存,所以还是建议要有良好的保存习惯。或者说可以去自带插件商店安装 "Auto Save" 插件(详见 [高级玩法 -> 插件](./#插件),下同) +但是,这个功能只是为你的文件拍了一个快照,并没有真正保存,所以还是建议要有良好的保存习惯。或者说可以去自带插件商店安装 "Auto Save" 插件(详见 [高级玩法 -> 插件](#插件),下同) ### 书签功能