Try   HackMD

清交APCS組/交大資工(資安組)/成大資工(智慧系統組)面試/上機考心得

我學測英文考爆,所以填的都是這些特殊的組別
數學15、自然14、英文11、國文12,APCS 5/4
競賽打得比較少主要是專題

清大APCS組

學測成績(數A+自+英)20% 備審資料40% 口試40%
40/45 不知 不知

有發一個名牌要別再身上
還有發一個必上清華的小餅乾,蠻好吃的,有點像小林煎餅

第一間

第一間學長會幫忙開好簡報,一進門就會開始計時5分鐘自介,超過一點點時間沒關係,我大概也超過15秒左右

  1. 你的興趣算是蠻多元的,你進大學後會想鑽研哪方面?
    答:
    我覺得密碼學中的數學還蠻有趣的,(然後講了一些AES和RSA的數學原理)

  2. 強化學習是怎麼學的?(我備審的東西)
    答:
    我回答是看一個台大教授在youtube上強化學習的教學,從Q Learning一路看到DQN和各種技巧。(我一開始忘記那個台大的教授叫甚麼名子)
    教授問我是李宏毅嗎? 我說對,教授還笑了一下

  3. 有沒有計算自動菌落計數器的誤差率?(我備審的東西)
    答:
    我沒有預料到會問這個,我以為會問一些圖像處理的專業問題,不過我回的好像不錯,我把數據和原因講完後,教授還回了一句make sence

如果和我一樣做很多專題的話,可以在自介多講一點,基本上我整個面試都圍繞著專題。完全沒問競賽的東西。

第二間

第二間一進去教授就會叫你抽一題。
我的是老鼠走迷宮,有給一張圖,題目如下。(回答我就不打了,都是經典問題)

  1. 要如何構建一個老鼠走迷宮的遊戲?

一開始我以為迷宮長怎樣是已知的,後面教授才和我說包含如何生成路徑和牆壁甚麼的。

  1. 要如何找到最短路? 如何使用recursive的方法找? 如何使用非recursive的方法找?
  2. 如果有多條路徑,要怎麼找到最短的?

總結

清大教授感覺都蠻友善的,第一間的教授不會問太刁鑽的,感覺就是要確認一下我對自己作品的熟悉度。第二間的教授也會引導回答方向。

交大資工(APCS)

學測成績(數A)20% 備審資料35% 口試45% 總分
15/15 86.59 89.33 90.51

結果:備取3(我滿意外的,我以為會備10幾,而且他口試給我的分數比想像的高)

三個教授,一分鐘自我介紹,五分鐘問問題
(問很多經典問題,我就不打我的回答了)

  1. 一分鐘自我介紹
  2. 為什麼APCS實作只有4分
  3. 你說你數學不錯,那你擅長的是數列還是幾何
  4. 講解一下費氏數列(感覺是因為上一題回答數列所以問這個)?
  5. 要怎麼用程式算
  6. 可以用DP以外的方法嗎
  7. 可以不開陣列嗎
  8. 如果只是要求最後一項有什麼比較快的方法嗎
  9. 費氏數列到很大的項數後,尾數會不會循環,要怎麼證明(後來有給提示,
    1010
    )

總結

大部分題目都不難,除了最後一題數學證明我當下沒想到,出來和同學討論才想到。
我聽同學的過程幾乎都有被問擅長什麼,(他們回答DP之類的),然後接下來也都會被問相關的問題。可能是因為我自我介紹有講我數學不錯,所以教授才從數學問(害我線段樹的東西白準備了,還被問不擅長的DP)
過程中完全沒有問我做的專案(我備審主要是專案製作,競賽比較少),不知道是比較重視競賽還是覺得不需要問(看歷年紀錄有說重視專案的,也有說重視競賽的)。
交大雖然面試時間比較短,但面試的問題感覺比較難,過程也比較有壓迫感,感覺表現的不是很好。(但最後看成績好像還行)

交大資工(資安組)

學測成績(數A)20% 備審資料35% 口試45% 總分
15/15 91.03 96.33 95.21

結果:正取(我面試表現不錯,被審也有資安的東西,但沒想到會正取)

三個教授,一分鐘自我介紹,五分鐘問問題。

  1. 一分鐘自我介紹
  2. 在競賽與檢定中你最印象深刻的題目和算法
  3. 講解一下Base64的原理
  4. 為什麼會想要學密碼學?(我備審的東西)
  5. RC4加密算法中的IV是幹嘛的
  6. 你AES密鑰是實作幾位元的
  7. 聽過Side-channel attack嗎
  8. 你實作AES時,覺得自己實作和利用開源資源的差別是什麼
  9. 你是用什麼填充方法
    (可能還有其他問題但我忘了)

總結

感覺比APCS組更重視備審東西,也有可能是我備審有資安的東西所以才有被問。不過也沒有問太多非常艱澀的東西(我原本以為會叫我證明RSA的數學原理之類的)

成大資工(智慧系統組)上機考

學測成績(數A+英)35% 備審資料40% 上機考25% 總分
26/30 90.53 50/100 最終成績所有人都乘1.2,我變60 81.55

結果:正取3
最低正取分數:72.05 最低備取:65.03
分數分布(76人考)

751
502

403

2012

1019

其他資源

第一名打的題解
https://hackmd.io/@chrislaiisme/113_PA_NCKU_TEST

完整題目
https://hackmd.io/@binghua/rJyxJdiQA

上機考過程與題目

當天9.30可以進去,10.開始機器測試,10.30開始考試
10.30後,學長會在前面講解題目在幹嘛,我聽完第一題後就直接開始寫的,第一題也很簡單,可以邊聽學長講話邊寫程式。

整個題目算是一個題組,要製作一個電子名簿。總共有九個功能。
名簿中每個人都有三種屬性 1.名子 2. 編號 3. 顏色 (保證名子不重複)
一開始會輸入一個

n,代表有
n
次操作(
n<105
)

採聯集計分

功能1-加入一名子到名簿中

輸入1人的名子、編號、顏色
編號保證在

1018
顏色保證在
100

保證第一次操作會是功能1
輸入:

name number color

功能2-改名

輸入1人的編號和一新的名子
並將此編號的人改成新的名子
輸入:

number name

功能9-查詢顏色

輸入一名子,輸出該人的顏色
輸入:

name 

1-A [包含功能1,2,9] (10分)

保證操作次數只有100次(

n<100)

解法

直接開陣列就會過

1-B [包含功能1,2,9] (10分)

n<105

解法

開map

功能4-建立朋友關係

先定義朋友關係,當A與B為朋友B與C為朋友時,A與C也為朋友
輸入兩名子(還是編號我忘了,但沒差),將兩人設為朋友
輸入:

name name

功能3-查詢朋友關係

輸入兩人名子(還是編號我忘了,但沒差),查詢兩人關係
如果兩人是朋友輸出YES
如果不是朋友輸入NO
輸入:

name name

2-A [包含功能1,3,4] (10分)

解法

DSU
記得要路徑壓縮
沒有union by size沒差

2-B [包含功能1,2,3,4,9] (10分)

解法

一樣

功能5-字典序

輸入一個名子a、編號與顏色(就是和功能1一樣的輸入),並將其加入名簿,並輸出字典序小於a的名子中,字典序最大的那一個。
輸入:

name number color

3 [包含功能1,5(忘了還有沒有其他的)] (10分)

解法

upper_bound

功能6-最長公共前綴字串查詢

輸入一個字串(長度小於10),找出所有名子內和該字串最長的前綴字串
並輸出
輸入:

string

4 [包含功能1,6] (15分)

解法

n<105 輸入字串長度又很小
就直接暴力解

功能7-範圍查詢

輸入兩數字l,r
輸出l,r範圍內的編號共有幾人
輸入:

number number

5 [包含功能1,7(忘了有沒有2)] (10分)

解法

map upper_bound + lower_bound 算距離

聽說官解是map+離散化bit

功能8-改顏色

輸入名子or編號與一顏色
並修改此人的顏色
輸入:

name color
number color
解法

一樣map

功能10

輸入一個顏色,輸出同顏色共有幾對朋友關係。
輸入:

color
解法

DSU

6 [包含全部功能] (10分)

有一些限制但我忘了

7 [包含全部功能] (15分)

無限制

總結

題目難度感覺正常,但時間真的少,一個半小時,加上我花了一段時間回想DSU在幹嘛,我完全寫不完,被第一名電神狠甩25分。

報考建議

  1. 如果你和我一樣,因為準備學測太久沒寫程式,可以寫寫看AP325當復健,裡面題目都不難,我考前花了大概一個禮拜寫個四、五十題,手感就回來了。可以看看我的復健記錄學測後復建AP325練習紀錄
  2. 如果你沒寫過程式,就去寫zerojudge基礎題庫,寫個三、四十題,再去寫AP325(可以寫前面的單元就好,要熟練運用stack、queue、deque、priority queue、set、map等),也可以寫CSES的sorting and searching