查 OI-Wiki 的正确姿势

服务器上放了一套 OI-Wiki,621 页,是这个圈子里最全的中文知识库。讲义已经整理到和它联网一样:每章末尾都有「延伸阅读」,直接链到对应页。

这一页讲的是:链过去之后,哪些该看、哪些不该看。

先说结论

OI-Wiki 是给已经会写程序、目标打 NOI 的人写的。它默认读者知道什么是树、什么是复杂度、什么是内存对齐。

你现在读不懂其中 80% 的内容,这不是你的问题。讲义负责把你带到「能读懂」的程度,wiki 负责在那之后给你更深的答案。两者分工不同,不是替代关系。

什么时候该去查

第一种:概念听过但不清楚边界。

比如第 6 章讲 char,你想知道它到底能不能存负数、'A' 和 65 在什么情况下等价。这时候去查,能拿到确定的答案。

第二种:想确认某个语法有没有更正式的写法。

比如第 1 章给了 printf("Hello\n");,你想知道还有没有别的输出方式。查完你会发现 cout << "Hello" << endl; 也行——两种都在用,只是这门课统一用 printf。

第三种:做完题想看看「这题背后是什么」。

比如第 15 章写完素数判定,去看看「素数」那一页,会发现你写的 i * i <= n 是所有方法里最朴素的一种,后面还有更快但更难的。

什么时候不该去

想在 wiki 里找「这道题怎么做」——找不到的。

OI-Wiki 讲的是通用知识点,不是题库。它不知道你的题目编号,也不对应你的作业。题目解法只能自己啃,或者看讲义。

想学「比这章更快更好的算法」——现在学不会。

第 25 章你学前缀和,wiki 那一页后面接着讲线段树、树状数组。这些是竞赛内容,你现在学了也用不上,而且会挤掉练基础题的时间。

遇到程序报错想查原因——那不是 wiki 的活。

编译错误、运行错误、答案错误,去看 本地测试与调试 和 常见问题。wiki 不会告诉你 expected ';' 是什么意思。

讲义里的三个标记

每章末尾的延伸阅读里,每条链接前面都有一个标记,意思是:

标记 含义 建议
可以先看 跟本章知识直接对应,深度也在你能接受的范围内 读完本章就去看,十分钟内能看完
学完本章再看 内容对,但需要本章的基础才读得动 做完这一章的题之后再回来
现在跳过 竞赛向,跟本章没有直接关系 这一轮完全不用管,别点

「现在跳过」的条目占了大约三分之一。 这不是敷衍——那些页面里有红黑树、莫比乌斯反演、AC 自动机,现在看只会让你怀疑自己不适合学编程。

wiki 自己的用法

目录在左边。 顶层是 语言基础、基础算法、数据结构、数学、图论、动态规划 这些大块。你现在只跟 语言基础 有关系。

站内搜索在左上角。 搜中文关键词就行,取模、浮点数、字符数组 都能搜到。

页面很长,先用浏览器搜索。 按 Ctrl+F 搜你关心的词,别从第一段开始读——那些页面是按「完整的知识体系」排的,不是按「你此刻想知道什么」排的。

一个具体的例子

第 4 章讲整数溢出,讲义只说「int 最大约 21 亿,超了就错」。

你去查 wiki 的变量那一页,会看到:

  • int 到底占几个字节、范围是多少
  • 有符号和无符号的区别
  • 溢出之后会发生什么(未定义行为)

这些讲义里没细说,因为你现阶段只需要知道「别超 21 亿」。但等你想明白「为什么 int 是 32 位」,那一页就有答案。

这就是两者的关系:讲义告诉你怎么用,wiki 告诉你为什么。先用起来,再问为什么。

© HiJudge · 内容采用 CC BY-NC-SA 4.0 许可协议            此页面修订于: 2026-11-01 03:44:11

results matching ""

    No results matching ""