10月22日晴,昨天下過雨,所以今天還是比較涼爽,是個編程比賽的好天氣。
這是第一次做裁判,滿有趣的,雖然比賽中出過小叉子(tomcat被關 掉了),但總歸還是挽救了回來。題目是Larva三個趕著寫出來的-_-0。Ray和Leaderz還是比較勤懇的,花了一個整天分別出了4道和3道。 Leen就有點~~比賽前一天晚上趕到2點多才趕了兩道。
Problem A: PageReplacement Algorithm: FIFO, Leaderz的一道關於頁面置換演算法的題目。在電腦群組成原理、作業系統和並行結構等課程中都會講到這個。對於應付考試來說,這是每門課必考的。考點就 是資料結構和類比。在比賽中,普遍反映題目難懂,其實Leaderz寫的還算是滿清楚的,只是這個演算法本身就比較煩,描述起來不容易。另外, Leaderz在比賽中改弱了資料~~還添加了Hint,方便大家理解這道題。
Problem B: PageReplacement Algorithm: LRU, Leaderz的第二題,是A的下一個頁面置換演算法。其實與第一題區別並不是很大,稍微修改一下就行了。不過要是第一題沒過,第二題就難過了。
Problem C: To Be Fat, Leaderz的第三題,是一道典型二分圖匹配演算法。
Problem D: IrreducibleNumber, Ray拉來的簡單題,簡單的地方不是它演算法簡單,而且其資料規模超小,枚舉幾下就可以通過了。標程的演算法是用一個bool數組,然後枚舉資料中元素的相 加,把所得的和設定為false,然後遍曆數組所得的最小的true元素就是解。
Problem E: Lazy Boy, 題如其人,Leen的題,果然有夠懶。就是從n*(n-1)*....(n-k+1)為止。
Problem F: Mine Sweepre,Ray的掃雷遊戲,Ray是掃雷迷呀。此題並不是求掃雷的解,而僅僅是把數字填上去。只要遍曆這個二維數組,遇到雷則四周都加1,然後直接輸出就行了。
Problem G: XQL, 變態難的類比題,Leen本來想把order by什麼都用上去,還好他自己後來也發覺太複雜了(-_-0,他自己也搞不定)。
Problem H: Molecular Formula,也許題目意思沒講清楚?這確實是比較難理解的一道題,其實它的考點就是遞迴的思想。只要熟悉寫遞迴程式,就可以比較方便得解決這道題目了。到了比賽結尾的時候有人開始問這道題目,可惜結果都差了比較遠。
Problem I: Sticked Ball, 是一道圖論的題目,對應了圖論中求“圖的直徑”。原理上就是求出所有點對間的最短距離,然後在最短距離中求最大值。求所有點對最短距離的簡單做法是 Floyd,用三個for就可以求得,但已耗用時間比較長,不過不礙事,題目沒給大規模的資料。還可以用Dijkstra的演算法運行n次求所有點對最短距 離,複雜度是O(n*nlogn),略快,但編程量大。這題,最後是有一個人做出來了,他也因此拿了第一名。
其他包括理學院的小章、我們的小葉、新生胖昕、不認識的鄭同學都表現神勇!雖然不能和ACM比賽相提並論,但大家都很積極、熱情,所以算是一場精彩的比賽吧。(最後鄙視一下判了幾分鐘就走掉的Sumhat同學 -_- 凸)。