> For the complete documentation index, see [llms.txt](https://kelly-lu.gitbook.io/jing-cheng-ru-men-bi-ji/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kelly-lu.gitbook.io/jing-cheng-ru-men-bi-ji/jing-cheng-zen-mo-ru-men.md).

# 競程怎麼入門

## 入門建議

1. 高中主要的比賽是 IOI 賽制，大學則是 ICPC 賽制。

   前者是個人賽，是代表國家參賽，題目採部分分，題材是有限制的（請參考 IOI 公布的範圍）。

   後者則是三人一隊，是代表學校參賽，有年齡限制，比的是答對的題數及 penalty，出題的內容是沒有限制的，但比賽時可以攜帶 25 頁 A4 參考資料。
2. 高中生強烈建議選 C++ 當作入門語言。大學生則可能要會寫多種語言，建議以 C++ / Kotlin 為主，python 為輔。
3. 沒有策略的隨意亂刷題、刷水題都是浪費人生的行為，CP 值很低。\
   建議找本書，按照書上的題單練習。

## 入門書籍

1. 《打下好基礎：程式設計與演算法競賽入門經典》。
2. 《培養與鍛鍊程式設計的邏輯腦：世界級程式設計大賽的知識、心得與解題分享》\[第二版]
3. 吳邦一老師的 [AP325](https://drive.google.com/drive/folders/10hZCMHH0YgsfguVZCHU7EYiG8qJE5f-m?fbclid=IwAR1cHTQWELRXcO6LRBiaFlrky5ADqT-IWqdvgsPpE17e5wABldC-c--Ey6M)
4. [Competitive Programming](https://cpbook.net/)
5. [Competitive Programmer’s Handbook](https://kelly-lu.gitbook.io/jing-cheng-ru-men-bi-ji/www.cses.fi/book.pdf)

## 推薦的 Online Judge

對於初學者而言，最推薦的是 AtCoder Beginner Contest，一方面難度從簡單到進階的題目都有，另一方面是台灣的時區和日本很接近。

### 英文

* 每週定期舉辦線上賽。
  * [Codeforces](https://codeforces.com/)
  * [AtCoder](https://atcoder.jp/)
* 能依照類別練題。
  * [CSES](https://cses.fi/problemset/)
* 能依照難度練題。
  * [Kattis](https://open.kattis.com/problems)
* 檢查 Codebook
  * [Library Checker](https://judge.yosupo.jp/)

### 中文

* [ZeroJudge](https://zerojudge.tw/)
  * 題目參差不齊，難度差異頗大，tag 也有點亂。

## 推薦的 Blog

* <https://codeforces.com/blog/entry/23054>
* [演算法筆記](https://web.ntnu.edu.tw/~algo/)
* [WiwiHo 的競程筆記](https://cp.wiwiho.me/)
* [資訊之芽 youtube 頻道](https://www.youtube.com/c/sprouttw)
* [Classes and Teaching by Erik Demaine](https://erikdemaine.org/classes/)
* [Algorithms for Competitive Programming](https://cp-algorithms.com/)
* [日月卦長的模板庫](http://sunmoon-template.blogspot.com/)
* [競程小撇步](https://tmt514.gitbooks.io/the-code-tactics-book/content/)

## 推薦的文字編輯器 / IDE

* IDE
  * Code::Blocks
  * VSCode
* 文字編輯器
  * vim, emacs
  * Sublime Text
