编程竞赛发展多年,难度越来越高,内容越来越复杂,而网上资料大多零散,初学者往往并不知道如何系统地学习相关知识,需要花费大量时间摸索。
为了方便热爱编程竞赛的小伙伴更好地入门,2018 年 7 月份,OI Wiki 迁移至 GitHub。随着 OI Wiki 的内容不断完善,越来越多的小伙伴参与其中。
OI Wiki 致力于成为一个免费开放且持续更新的知识整合站点,大家可以在这里获取关于 编程竞赛 (competitive programming) 有趣又实用的知识,我们为大家准备了竞赛中的基础知识、常见题型、解题思路以及常用工具等内容,帮助大家更快速深入地学习编程竞赛。
目前,OI Wiki 正在完善各大方向的基础知识,以便于初学者更好地学习。
OI Wiki 基于 OI,却不会局限于 OI。OI Wiki 会努力完善以下内容:
- 应用在 ICPC 竞赛中的进阶知识
- 竞赛中出现的优质题目
- 与面试、实际应用相结合的经验
关于上述待完善内容,请参见 OI Wiki 中的 Projects,详细列举了正在做的事情以及待做事项。
与此同时, OI Wiki 源于社区,提倡 知识自由,在未来也绝不会商业化,将始终保持独立自由的性质。
本项目目前采用 MkDocs 部署在 oi-wiki.org。
我们在 status.oi-wiki.org 维护了一份镜像站列表,它们的内容和 oi-wiki.org 都是相同的。
当然,也可以在本地部署。(需要 Python 3)
如果遇到问题,可以查阅 F.A.Q. 来了解更多信息。
git clone https://github.com/OI-wiki/OI-wiki.git --depth=1
cd OI-wiki
# 安装 mkdocs
pip3 install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 使用我们的自定义主题(不是必须执行)
chmod x ./scripts/build.sh && ./scripts/build.sh
# 两种方法(选其一即可):
# 1. 运行一个本地服务器,访问 http://127.0.0.1:8000 可以查看效果
mkdocs serve -v
# 2. 在 site 文件夹下得到静态页面
mkdocs build -v
# 获取 mkdocs 的命令行工具的说明(解释了命令和参数的含义)
mkdocs --help
我们现在在服务器端渲染 MathJax ,如果希望实现类似效果,可以参考 netlify_build.sh。(需要安装 Node.js)
# Coding 上的镜像仓库和 GitHub 仓库的内容相同
git clone https://git.dev.tencent.com/scaffrey/OI-wiki.git
可以使用 gh-pages
分支的内容(CODING 上面的分支名叫 coding-pages
)
git clone https://git.dev.tencent.com/scaffrey/OI-wiki.git -b coding-pages
本地启动一个 http 服务器可能会更方便一些。
# 如果是 python3
python3 -m http.server
# 如果是 python2
python2 -m SimpleHTTPServer
# 有些环境下找不到名叫 python3/python2 的可执行文件,不妨运行 python 试试
详见 Docker 部署
我们非常欢迎你为 OI Wiki 编写内容,将自己的所学所得与大家分享。 具体的贡献方式在 F.A.Q。
除特别注明外,项目中除了代码部分均采用 (Creative Commons BY-SA 4.0) 知识共享署名 - 相同方式共享 4.0 国际许可协议 及附加的 The Star And Thank Author License 进行许可。
换言之,使用过程中您可以自由地共享、演绎,但是必须署名、以相同方式共享、分享时没有附加限制,
而且需要为 GitHub 仓库点赞(Star)。
本项目受 CTF Wiki 的启发,在编写过程中参考了诸多资料,在此一并致谢。
非常感谢一起完善 OI Wiki 的 小伙伴们!
特别感谢 24OI 的朋友们的大力支持!
鸣谢 QVQNetwork 赞助的服务器。