考點分析 / 台大 / 108

108 台大資工所軟體考點分析

全卷 10 題無選擇題,且明訂「子題答錯不給部分分數」。第 9、10 兩題把匹配與 DP 包裝成船隻停靠和圖形替換,是台大少見的情境題。

題型與配分

科目「資料結構與演算法(A)」(題號 413、節次 1),全卷 4 頁、10 題、100 分。沒有選擇題,全部寫在答案卷上。

計分規定:卷面第一行就寫明「NO partial score will be given for partially correct answer」—— 每一個子題答對才給分,答錯一部分就整個子題沒分。另外註明「除非特別說明,只需要最終答案」。

題號主題配分
1Stack 排列數(遞迴式+封閉式)10
2Infix 轉 postfix5
3Min-heap 操作後畫圖10
4O(n) 建堆的說明8
5Quicksort 三路分割(3 小題)20
6Hash open addressing(3 小題)13
7最短路徑是非題6
8去環 pseudo-code 填空8
9船隻停靠(非交叉匹配)10
10圖形替換 DP10

逐題考點

  • 第 1 題(10%)|1..n 經過 stack 後可以產生幾種排列 bn。(a) 遞迴式 (b) 封閉式 —— 答案是 Catalan number,(a) 要寫出 bn = Σ bk·bn−1−k 的卷積形式
  • 第 2 題(5%)|把 (a/(c*(b+d)))/(e-a)*c 轉成 postfix。純技術題,穩分
  • 第 3 題(10%)|依序 insert 7、4、3、1、delete min、insert 9、2、5、delete min、delete min,畫出最終的 min-heap
  • 第 4 題(8%)|說明如何在 O(n) 時間建堆,可用 n = 15 舉例(不必證明複雜度)。考的是 bottom-up heapify 而非逐一插入
  • 第 5 題(20%)|Quicksort 深入題,是全卷配分最高的一題
  • (a) 6%|三個是非:輸出是否非遞增、是否為 stable sort、是否為 in-place sort
  • (b) 4%|當 n 個元素全部相同時的最壞複雜度
  • (c) 10%|補完 PARTITION_THREE() 的 (A)(B)(C) 三個空格,讓三路分割版本在全等輸入下跑出 O(n)
  • 第 6 題(13%)|Open addressing
  • (a) 3%|寫出 linear probing 的 h(k,i)
  • (b) 5%|double hashing,h1(k)=k mod 16、h2(k)=1+(k mod 15)、m=16,依序插入 {16, 3, 35, 67, 51, 1, 15, 31, 19, 17},畫出最終表格
  • (c) 5%|Alpha 教授改用 h2(k)=2·(k mod 8),舉例說明這個設計為何有問題 —— 關鍵在 h2(k) 與 m=16 不互質,探測序列走不完整張表
  • 第 7 題(6%)|三個是非:Dijkstra 能否處理負權(無負環)、Bellman–Ford 是否解全點對、Floyd–Warshall 在有負環時是否仍正確
  • 第 8 題(8%)|給一段 Cycle-Removal(G,u) 的 pseudo-code,節點分成 Type-0/1/2 三色,要填出第 8、10、11、14 行的 A、B、C、D 四個值使它能正確輸出無環圖。這就是 DFS 的白灰黑三色法,考的是能不能認出來
  • 第 9 題(10%)|14 艘船要到對岸,同字母的船才能停同字母的碼頭,航線交叉的船必須等 15 分鐘。(a) 9 點能出發的最大船數 (b) 寫出那些船的編號。本質是非交叉匹配 / LIS 型的 DP
  • 第 10 題(10%)|給一串圖形與一張替換規則表(含替換前後成本),求總成本最小的替換方式。(a) 最小總成本 (b) 由左至右列出使用的規則。這是一維的區間 DP,與 rod cutting 同型

這份考卷的難點

  1. 沒有部分分數。 第 5(c) 的三個空格、第 8 題的四個值、第 6(b) 的整張 hash 表,只要錯一格整題歸零,容錯率極低。
  2. 第 9、10 題的「包裝」是最大障礙。 題面完全不提匹配或 DP,要自己看穿船隻交叉其實是逆序對、圖形替換其實是區間 DP。
  3. 第 5 題佔 20 分,且 (c) 的三路分割(Dutch national flag)不是每本課本都會講。
  4. 第 6(c) 要能講出「h2(k) 必須與 m 互質」的理由,這個觀念在 115 年第 16 題又考了一次。

準備建議

  • Catalan number 的三種常見場景(stack 排列、二元樹形狀數、括號合法序列)要一起記,台大 108 考 stack 排列
  • Quicksort 的三路分割(Dutch national flag partition)建議實際寫過一次,不然第 5(c) 很難現場推
  • hash 的 h2(k) 與表大小互質是台大反覆出現的細節(108 第 6(c)、115 第 16 題)
  • 看到「情境題」先問自己「這是不是某個經典問題換皮」—— 台大很愛這樣出題,109 的 SNP 題(其實是 set cover)、110 的 snake sequence(其實是格子 DP)、114 的球隊淘汰題(其實是 max flow)都是同一個套路

想看完整逐題詳解?

國立臺灣大學 106–115 全年度完整詳解共 309 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科