※轉錄自 演算法學習筆記
初級
【C++ 基礎語法】
* 輸入與輸出 (input and output)
* 算術運算 (arithmetic operation)
* 邏輯運算 (logical operation)
* 位元運算 (bitwise operation)
* 條件判斷與迴圈 (conditional expressions and loops)
難度:舊制第一題
1: 七言對聯|題解
2: 裝飲料|題解
3: 遊戲選角|題解
中級
【C++ 基礎語法】
* 陣列 (arrays)
* 字元 (character)
* 字串 (string)
難度:舊制第二題
1: 特殊位置|題解
2: 蒐集寶石|題解
3: 字串解碼|題解
中高級
* 函式 (function)【C++ 基礎語法】
* 遞迴 (recursion)【C++ 基礎語法】
* 佇列 (queues)
* 堆疊 (stacks)
* 簡單結構的樹狀圖 (tree),例如:二元樹 (binary tree) 等
* 簡單結構的圖 (graph)
* 枚舉 (enumeration)、資料遍歷 (traversal)
* 搜尋 (search),例如:二分搜尋 (binary search)、深度優先搜尋 (depth-first search, DFS)
難度:舊制第三題
1: 石窟探險|題解
2: 先加後乘與函數|題解
3: 連鎖反應|題解
高級
* 樹狀圖 (tree)
* 圖 (graph)
* 動態規畫 (dynamic programming):例如:零錢問題、0-1背包問題、LCS 最長共同子序列、LIS 最長遞增子序列
* 分治法 (divide and conquer)
* 貪心法則 (greedy method)