Skip to content

Reading Guides

Jasmine Chen edited this page Nov 17, 2016 · 9 revisions

Reading Guides

Reading Guides for Awesome Competitive Programming

Languages / Regions

English

Forewords

NPSC 2006 (Taiwan) was the very first programming contest I attended, so 2016 would count as my 11th year in the competitive programming scene. During my long and hard-fought venture, I often struggled to find good materials to learn from (Wikipedia was way too "academic" for me). This motivated me to share all the awesome, open resources I've collected over the years.

I hope this list can help everyone more or less :)

Reading Guide

For beginners, I'd suggest to start from:
Stanford CS 97SI: Introduction to Competitive Programming Contests
This is what I would consider the baseline for competitive programmers today.

Once you've understood most of it, turn to:
Good Blog Post Resources about Algorithm and Data Structures - Codeforces
and pick any topics you would like to learn. I'd say the level of difficulty here is about average (although there are some pretty advanced ones).

For more advanced topics,
I'd say it really depends as some regions do favor particular domains of knowledge over others.
Nonetheless, I think you should still be able to find something useful in this list :)

Once you've learned and implemented an algorithm or a data structure, you can checkout others' implementations on the Implementations / Notebooks section as theirs can be more robust. You may also be able to tell what everyone else is learning.

Possibly one that's not included in other lists is: I also have a section dedicated to social media.
Connecting with people worldwide is important as far as I'm concerned.
You can definitely learn a lot from the people there :)

Chinese, Taiwan

前言

NPSC 2006 是我第一場程式競賽,轉眼間這是我的第11年了 0.0 (?)
在我的競賽生涯中,我常常為了找不到好的參考資料所苦(維基百科寫的根本都是文言文QWQ)
所以我決定在這邊分享自己這幾年來陸續匯集的、可以公開分享的資料, 希望能多少幫助到大家 :)

導讀

如果是初學者,建議可以從
Stanford CS 97SI: Introduction to Competitive Programming Contests
開始看;這裡的內容大概就是目前選手的能力基礎線。

對基本的內容略知一二之後,可以轉到
Good Blog Post Resources about Algorithm and Data Structures - Codeforces
挑選主題學習;這裡的內容大概是目前一般選手的能力範圍(不過有幾項確實有點難)。

進階的主題基本上就是看個人造化了 (?)
台灣這邊好像是跟中國大陸的主題比較多,可以參考 国家集训队论文 1999-2015
東北歐最有名的資源是 E-Maxx,用Google翻譯成英文可以大致看得懂。
有趣的是從這邊可以看出各個賽區強調的知識其實不太相同 :P

如果學了某個主題寫不出來,或是想要參考有沒有更好的解法,
可以看 Implementations / Notebooks 這個區塊的內容;
語言、語法這部分可以參考 Language Specifics 這個區塊;

需要練習的話,會建議使用 Sites to Practice 底下列的網站,
並且搭配 Problem Classifiers (題目分類) 列的服用;

接下來我在 Books 列了一些經典書,英文書不太便宜,
我個人認為之中列的中文書比較好一點,
競技程式還滿神奇的是:中文的資料常常比英文的還要好很多 @_@

最後是 Social Media ,
我在這邊放了一些神人的部落格、Youtube、直播,還有 Quora;
如果英文OK的話,我非常推 Quora,不只是 Competitive Programming 這個分類底下,
Quora 有非常非常多有用的資訊,還有很多熱心的神人在回答問題,
不只是選手,有些知名的人物像是 Thomas Cormen (CLRS的C)、Vint Cerf (網路之父) 在上面是有帳號的也會回答問題哦 0.0

Clone this wiki locally