# 清交APCS組/交大資工(資安組)/成大資工(智慧系統組)面試/上機考心得
我學測英文考爆,所以填的都是這些特殊的組別
數學15、自然14、英文11、國文12,APCS 5/4
競賽打得比較少主要是專題
# 清大APCS組
| | 學測成績(數A+自+英)20% | 備審資料40% |口試40%|
| -------- | -------- | -------- | ------|
|我| 40/45 | 不知 | 不知 |
#### 結果:備取6,看來我英文真的太爛
有發一個名牌要別再身上
還有發一個必上清華的小餅乾,蠻好吃的,有點像小林煎餅
## 第一間
第一間學長會幫忙開好簡報,一進門就會開始計時5分鐘自介,超過一點點時間沒關係,我大概也超過15秒左右
1. 你的興趣算是蠻多元的,你進大學後會想鑽研哪方面?
答:
我覺得密碼學中的數學還蠻有趣的,...(然後講了一些AES和RSA的數學原理)
2. 強化學習是怎麼學的?(我備審的東西)
答:
我回答是看一個台大教授在youtube上強化學習的教學,從Q Learning一路看到DQN和各種技巧。(我一開始忘記那個台大的教授叫甚麼名子)
教授問我是李宏毅嗎? 我說對,教授還笑了一下
3. 有沒有計算自動菌落計數器的誤差率?(我備審的東西)
答:
我沒有預料到會問這個,我以為會問一些圖像處理的專業問題,不過我回的好像不錯,我把數據和原因講完後,教授還回了一句make sence
如果和我一樣做很多專題的話,可以在自介多講一點,基本上我整個面試都圍繞著專題。完全沒問競賽的東西。
## 第二間
第二間一進去教授就會叫你抽一題。
我的是老鼠走迷宮,有給一張圖,題目如下。(回答我就不打了,都是經典問題)
1. 要如何構建一個老鼠走迷宮的遊戲?
一開始我以為迷宮長怎樣是已知的,後面教授才和我說包含如何生成路徑和牆壁甚麼的。
2. 要如何找到最短路? 如何使用recursive的方法找? 如何使用非recursive的方法找?
3. 如果有多條路徑,要怎麼找到最短的?
## 總結
清大教授感覺都蠻友善的,第一間的教授不會問太刁鑽的,感覺就是要確認一下我對自己作品的熟悉度。第二間的教授也會引導回答方向。
# 交大資工(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. 費氏數列到很大的項數後,尾數會不會循環,要怎麼證明(後來有給提示,$10^{10}前會出現循環$)
## 總結
大部分題目都不難,除了最後一題數學證明我當下沒想到,出來和同學討論才想到。
我聽同學的過程幾乎都有被問擅長什麼,(他們回答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人考)
$75*1$
$50*2$
$40*3$
$20*12$
$10*19$
## 其他資源
第一名打的題解
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<10^5$)
採聯集計分
### 功能1-加入一名子到名簿中
輸入1人的名子、編號、顏色
編號保證在$10^{18}$內
顏色保證在$100$內
保證第一次操作會是功能1
輸入:
```
name number color
```
### 功能2-改名
輸入1人的編號和一新的名子
並將此編號的人改成新的名子
輸入:
```
number name
```
### 功能9-查詢顏色
輸入一名子,輸出該人的顏色
輸入:
```
name
```
### 1-A [包含功能1,2,9] (10分)
保證操作次數只有100次($n<100$)
:::success
:::spoiler 解法
直接開陣列就會過
:::
### 1-B [包含功能1,2,9] (10分)
$n<10^5$
:::success
:::spoiler 解法
開map
:::
### 功能4-建立朋友關係
先定義朋友關係,當A與B為朋友B與C為朋友時,A與C也為朋友
輸入兩名子(還是編號我忘了,但沒差),將兩人設為朋友
輸入:
```
name name
```
### 功能3-查詢朋友關係
輸入兩人名子(還是編號我忘了,但沒差),查詢兩人關係
如果兩人是朋友輸出YES
如果不是朋友輸入NO
輸入:
```
name name
```
### 2-A [包含功能1,3,4] (10分)
:::success
:::spoiler 解法
DSU
記得要路徑壓縮
沒有union by size沒差
:::
### 2-B [包含功能1,2,3,4,9] (10分)
:::success
:::spoiler 解法
一樣
:::
### 功能5-字典序
輸入一個名子a、編號與顏色(就是和功能1一樣的輸入),並將其加入名簿,並輸出字典序小於a的名子中,字典序最大的那一個。
輸入:
```
name number color
```
### 3 [包含功能1,5(忘了還有沒有其他的)] (10分)
:::success
:::spoiler 解法
upper_bound
:::
### 功能6-最長公共前綴字串查詢
輸入一個字串(長度小於10),找出所有名子內和該字串最長的前綴字串
並輸出
輸入:
```
string
```
### 4 [包含功能1,6] (15分)
:::success
:::spoiler 解法
$n<10^5$ 輸入字串長度又很小
就直接暴力解
:::
### 功能7-範圍查詢
輸入兩數字l,r
輸出l,r範圍內的編號共有幾人
輸入:
```
number number
```
### 5 [包含功能1,7(忘了有沒有2)] (10分)
:::success
:::spoiler 解法
map upper_bound + lower_bound 算距離
聽說官解是map+離散化bit
:::
### 功能8-改顏色
輸入名子or編號與一顏色
並修改此人的顏色
輸入:
```
name color
number color
```
:::success
:::spoiler 解法
一樣map
:::
### 功能10
輸入一個顏色,輸出同顏色共有幾對朋友關係。
輸入:
```
color
```
:::success
:::spoiler 解法
DSU
:::
### 6 [包含全部功能] (10分)
有一些限制但我忘了
### 7 [包含全部功能] (15分)
無限制
## 總結
題目難度感覺正常,但時間真的少,一個半小時,加上我實作有點燒,我完全寫不完,被第一名電神狠甩25分。
## 報考建議
1. 如果你和我一樣,因為準備學測太久沒寫程式,可以寫寫看AP325當復健,裡面題目都不難,我考前花了大概一個禮拜寫個四、五十題,手感就回來了。可以看看我的復健記錄[學測後復建AP325練習紀錄](/DmAelxUnRyGpYKwbrtjarg)
2. 如果你沒寫過程式,就去寫zerojudge基礎題庫,寫個三、四十題,再去寫AP325(可以寫前面的單元就好,要熟練運用stack、queue、deque、priority queue、set、map等),也可以寫CSES的sorting and searching