每天务必做一点你所不愿意做的事情,这是一条宝贵的准则,它可以使你养成认真尽责而不以为苦的习惯。——马克.吐温

https://github.com/OI-wiki/OI-wiki

https://oi-wiki.org/

OI Wiki:竞赛编程爱好者的知识宝库

在编程竞赛的世界里,知识的掌握是制胜的关键。如何系统地学习数据结构、算法,甚至是一些高级的数学工具?互联网的资料虽然丰富,但往往零散、不成体系,初学者常常感到无从下手。而 OI Wiki,正是为了解决这些问题而诞生的一款开源知识站点。


一、什么是 OI Wiki?

OI Wiki 是一个专注于 编程竞赛(Competitive Programming) 的知识整合站点。它由社区驱动,由热爱编程竞赛的开发者与爱好者共同维护和完善。

以下是 OI Wiki 的核心亮点:

  • 内容全面:涵盖了从基础知识到高级技巧的广泛主题,包括数据结构、算法、数学、竞赛经验等。
  • 开源免费:基于社区协作,任何人都可以贡献内容或提出改进建议。
  • 持续更新:内容不断完善,确保与最新竞赛趋势保持同步。
  • 初心不改:倡导知识自由,承诺永不商业化。

项目主页:OI Wiki 官网
GitHub 仓库:OI Wiki on GitHub


二、OI Wiki 的起源

OI Wiki 的诞生可以追溯到 2018 年 7 月。开发团队发现,现有的竞赛编程资源虽然丰富,但缺乏一个系统化、结构化的知识库。于是,他们将目光投向 GitHub,一个可以让全球开发者协作的平台。从那时起,OI Wiki 就成为了编程竞赛爱好者共享和学习知识的地方。


三、主要内容

OI Wiki 的内容涵盖了编程竞赛中的方方面面。以下是部分主题:

  1. 基础数据结构:链表、堆、栈、队列等。
  2. 高级算法:动态规划、分治法、图论算法等。
  3. 数学工具:数论、组合数学、概率论等。
  4. 竞赛经验:比赛策略、心态调整、团队协作等。
  5. 实用工具:代码模板、工具推荐等。

四、如何使用和参与?

1. 使用 OI Wiki

  • 在线阅读:直接访问 oi-wiki.org

  • 离线部署:如果你希望本地查看,可以使用以下步骤:

    1
    2
    3
    4
    5
    git clone https://github.com/OI-wiki/OI-wiki.git --depth=1
    cd OI-wiki
    pipenv install --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple/
    pipenv run mkdocs serve -v
    # 打开浏览器,访问 http://127.0.0.1:8000

2. 贡献内容

OI Wiki 是一个社区驱动的项目,任何人都可以通过以下方式参与贡献:

  • 修正错误:发现内容中的错误或过时信息,可以直接在 GitHub 提交 PR。
  • 新增内容:将自己的学习心得与技巧分享给社区。
  • 讨论与建议:通过 Issues 提出新的想法或改进建议。

具体参与方式请查看:如何参与


五、为什么选择 OI Wiki?

  1. 社区驱动,内容可靠
    OI Wiki 的内容由全球竞赛编程爱好者贡献,经过社区成员的审核与完善,质量有保障。

  2. 知识系统化
    它将编程竞赛的知识结构化组织,形成了一个便于查阅和学习的知识体系。

  3. 开源与持续更新
    与传统的商业化资料相比,OI Wiki 完全免费且持续更新,确保内容的时效性和开放性。


六、社区与支持

OI Wiki 的 GitHub 仓库目前已获得超过 23,000 颗星标,并有 4,000+ 次分叉,展现了其受欢迎程度和社区活跃度。

此外,OI Wiki 还得到了多方支持与赞助,例如北大算协、Hulu 等。


七、结语

OI Wiki 是编程竞赛领域的一颗闪耀之星,它不仅为初学者提供了学习的起点,也为进阶者提供了探索的资源。如果你热爱编程竞赛,或者希望为这个领域贡献自己的知识,OI Wiki 将是你不可错过的宝藏。

让我们一起加入这个开放、共享的知识社区,为全球编程竞赛爱好者的成长贡献力量吧!