高級中等學校技藝競賽 · 程式設計職種培訓教材

🏆 金手培訓
Gold Hand Programming

以「全國高級中等學校學生商業類技藝競賽-程式設計職種」為目標的 Python 培訓課程, 涵蓋基礎語法、演算法與時間複雜度、競賽解題技巧、DOMjudge 線上評測與歷屆試題。

29
Python 教學筆記本
5
演算法主題
5
DOMjudge 練習題
19
歷屆試題題庫
2
互動教學投影片

教材內容一覽

由三重商工資料處理科林易民老師與陳勝舢博士共同製作。內容以滾動式方式持續新增, 建議依下列順序循序學習。

Notebooks

Python 教學筆記本

0~28 號 Jupyter Notebook,從 f-string、複製語意,逐步到快速 I/O、效能優化與競賽常用內建函式。

查看清單 →
algorithm/

演算法教學筆記本

以階乘、費波那契、河內塔、DFS、BFS 示範迴圈、遞迴與圖形搜尋的基本觀念。

前往資料夾 →
contest_template/

競賽程式模板

可直接套用的 stdin/讀檔輸入輸出模板,方便在本地測試與正式提交間快速切換。

前往資料夾 →
domjudge_manual/

DOMjudge 說明文件

DOMjudge v8 線上評測系統的登入、提交、積分板使用方式,以及 Python 標準輸入輸出寫法。

前往資料夾 →
domjudge_practices/

DOMjudge 練習題

每題含題目 PDF、範例與秘密測資、評測設定與參考解,同名 .zip 可直接匯入 DOMjudge。

查看清單 →
domjduge_pastexam/

歷屆試題題庫

114 學年度術科歷屆試題(A~S 共 19 題)DOMjudge 題目包,含測資與標準解。

查看題目與上傳方式 →
competition_documents/

競賽官方文件

簡章、競賽規則說明會議紀錄,以及 110~114 學年度歷屆學科與術科正式試卷。

前往資料夾 →
decks/

互動教學投影片

動態規劃七大題型框架,以及遞迴數路徑的視覺化講解,可在瀏覽器直接開啟。

開始觀看 →

互動教學投影片

在瀏覽器中直接開啟的視覺化講解,適合搭配教材延伸學習或課堂簡報使用。

Python 教學筆記本清單

依編號循序漸進,從基礎語法到競賽常用的內建函式與資料結構。

展開全部主題29 篇
編號主題
0基礎語法:f-string、Packing/Unpacking、Shallow/Deep Copy
0時間複雜度入門:泡沫排序 vs 合併排序
1C/C++ 與 Python 執行速度比較
2程式撰寫風格與原則
3遞迴基礎
4等差/等比數列與 GCD/LCM
5快速 I/O(sys.stdin)技巧
6常見效能寫法比較
7map 內建函式
8zip 內建函式
9functools.cache / lru_cache 與動態規劃
10reduce + lambda
11filter 內建函式
12bisect 二分搜尋模組
13collections.defaultdict
14collections.OrderedDict
15進位轉換
16浮點數精度與 Decimal
17set 集合操作
18List 與 List Comprehension
19List 插入代價與前綴和(Prefix Sum)
20佇列、堆疊與 deque
21二元樹(Binary Tree)
22collections.Counter
23sorted()、sort() 與自訂比較函數
24排列、組合與位元運算
25math 模組、GCD 與質數
26itertools.product 笛卡兒積
27heapq 堆積與優先佇列
28calendar.isleap 與三參數 pow()

DOMjudge 練習題

每題可直接以同名 .zip 匯入 DOMjudge 使用。

等差數列或等比數列

數列判斷與浮點數處理。

階乘變化:下降階乘

階乘與迴圈。

Fibonacci 變化:第一個達標數

Fibonacci 數列與門檻搜尋。

GCD 與 LCM

最大公因數與最小公倍數。

河內塔變化:查詢第 k 步

遞迴與步驟定位。

歷屆試題題庫(114 術科)

114 學年度商業類技藝競賽程式設計術科的 19 題(A~S),每題皆為標準 DOMjudge / Kattis 題目包,含樣本與秘密測資、時間限制與 Python 標準解。 全部 304 筆測資均以標準解驗證通過(最慢一筆 0.42s)。

上傳方式 · 逐題

逐題匯入(最保險)

DOMjudge 管理介面 → Problems → Import problem,選 A.zip~S.zip(可一次多選),再選要匯入的 contest。

上傳方式 · 批次

批次匯入

problems.zip 內含 19 個題目 zip,供支援「zip of zips」的版本批次匯入;若失敗改用逐題上傳。

每包內容

題目包結構

題目 PDF、domjudge-problem.ini、problem.yaml、data/sample 與 data/secret 測資,及 submissions/accepted 標準解。

展開 19 題設定(題名 · 測資數 · 時限)A~S
題題名測資數時限
A西元年173s
B負數轉為正數213s
C奇數203s
D奇數加總73s
E數字翻轉253s
Fhello223s
G字串183s
H棒打老虎雞吃蟲263s
I提款卡密碼243s
JIPv4 地址轉換243s
K電話客服中心303s
L投資收益85s
MFibonacci 費氏數列85s
N二維點排序108s
O質數 Emirp78s
P質因數之和65s
Q完全平方數75s
R最小路徑143s
S最小生成樹1010s

時限以 Python 標準解為基準放寬;若比賽只收 C/C++ 可再往下調(1~2s 亦相當寬鬆)。 詳細各題注意事項請見 domjduge_pastexam/README.md。

建議學習路徑

各 .ipynb 可直接以 Jupyter Notebook、JupyterLab 或 VS Code 開啟閱讀與執行。

  1. 學習 Python 基礎(0~6) 從 0_python_basics 開始,依編號讀完基礎語法、時間複雜度、遞迴、快速 I/O 與效能寫法,建立競賽所需的觀念與手感。
  2. 熟悉常用內建函式(7~28) 逐一練習 map/zip/bisect/heapq、collections 家族與 lru_cache 等,這些是縮短解題時間的關鍵工具。
  3. 練習演算法(algorithm/) 以階乘、費波那契、河內塔、DFS、BFS 練習迴圈、遞迴與圖形搜尋的基本套路。
  4. 準備競賽模板與評測環境 套用 contest_template/ 的 stdin/讀檔模板,並閱讀 domjudge_manual/ 熟悉登入、提交與積分板操作。
  5. 小題實戰(domjudge_practices/) 匯入 5 題練習題的 .zip,從數列、階乘、GCD/LCM、河內塔等主題累積提交經驗。
  6. 歷屆試題模擬(domjduge_pastexam/) 以 114 術科 A~S 共 19 題進行完整模擬,先攻 A~K 的基礎題,再挑戰 L~S 的數學與圖論題,並比對標準解。