考試流程
1300-1430 觀念題
1500-1730 實作題
兩個都是考試開始30分鐘後~結束前10分鐘能提早交卷並出場,這裡提供我的作答時間給大家參考:觀念題25分鐘作答15分鐘檢查,實作題35分鐘作答15分鐘研究系統。
1.觀念題
有30題單選,其中5題不算分(我不知道哪五題),大部分都是程式邏輯和遞迴,也有初始化的那種陷阱題。
感想:寫起來很煩躁,四個選項都要算的很累,檢查一次就交卷不想再看他了。
2.實作題
兩個半小時只考4題,可以用C, C++, Python2, Python3, JAVA,大部分人都是用C++或Python3的樣子,給一下四題我的解(我用C++),如果有誤歡迎雷我一下讓我知道成績單會很難看#
第一題
題意:有一個數字,求奇數位的數字總和及偶數位的數字總和的差,例如13579就是|(1+5+9)-(3+7)|=5
我的解法:數字用字串輸入,迴圈跑以%2為條件判斷是哪個位數,記得存和的時候要-'0',最後用cmath裡面的abs計算絕對值和差並輸出。
code: https://ideone.com/SukY5H
第二題
題意:有N個人,給你他們的朋友,要你求朋友圈數,保證每個人的朋友不重複,意思大概就是直到沒有共同好友為止算一個朋友圈這樣。
我的解法:用一個bool陣列紀錄那個人是否被算進生活圈,然後從編號0開始,只要是沒算過生活圈的就ans++並dfs一下把所有共同好友紀錄為算進生活圈,走完一次迴圈再輸出ans就好了。
code: https://ideone.com/IkMPCt
第三題
題意:給你一個N*N的方陣和方向k,要從中間開始轉出去,輸出是旋轉的路徑,看到題目我表示:What the...
我的解法:走x步換方向、走2次+每次步數,然後讓他轉...這題好抽象好難解釋,如果有人想看再留言,我再附上完整說明吧
code: https://ideone.com/kN219Q
第四題
題意:有N個點要架設東西,你可以擺放K個基點台讓這N個點能收到訊號,求基地台訊號的直徑至少要多少
我的解法:先把N個點sort,再來開一陣列儲存兩兩之間的差,最後以直徑對差之和做二分搜,結束。
code: https://ideone.com/wUMOLn
事後的一些想法
座位很近,有看到一些長頸鹿的情況,不過監考人員沒發現我也沒打算舉報就是了
考試環境在觀念的時候有鎖環境防止用程式作弊,但鎖的不是很齊全,另外我ping是可以ping出去的,有心人士願意的話很容易作弊,這是我覺得蠻危險的部分。
以上是今天APCS的心得..這篇應該是3C/職科/升學都能發,我就發自己最習慣的板了,希望下面能釣出考生回覆xD
啊
你可能有興趣的文章...
全部留言
B5 http://i.imgur.com/yNUmccl.png 沒關係還有下一次可以報名w 也許你可以講看看是哪邊不太ok,我有空可以回答(?
匿名
可以請問那個實作題可以怎麼準備嗎 去考過兩次 我有一點點c++基礎 觀念題感覺尚可(? 可是實作題每次不是沒頭緒就是有一點想法但是寫不出來QAQQQ 兩次的實作題都是空白的…
實作題 看起來你的問題是經驗不足,建議平常可以去Online Judge(解題系統)寫一下題目,中文題目可以解ZeroJudge的基礎題庫,英文題目可以解UVA前面的題目,基本上寫個100題,APCS應該能輕鬆破台 若是要再往上提升,建議看一下我曾經打的「Re: 【問】程式語言」這篇文,應該算蠻詳細的XD 或是你有興趣的話我可以給你昨天寫得code...不保證一模一樣不過差不多長這樣#
APCS一定要做重複輸入嗎(像ZeroJudge那樣 我沒弄啊....gg 雖然只是寫了1.2就是了... 樓主好強@@ 順便附上python3 1和2 1. 這題只是照題意做 http://ideone.com/cKdvoV 2. 這題考DFS偵測環 從第零位開始,若已在某小團體中則跳過,否則以函數DFS跑出該小團體所有成員並記錄在rec中。 函數DFS:不斷尋找下一位朋友,直到該朋友已經紀錄過(有環) https://ideone.com/1zdibu
關於第二題的解法,其實可以用disjoint set 來做,配合路徑壓縮和啟發式合併可以把複雜度壓到接近O(n),code也不長,可以參考看看