出過題目,整過system,做過judging,今次無疑TFT的工作量比想像中大。
結果方面,有點失望,那4題居然可以令各位高手失去這樣多分,更慘的是,只有兩個人可以分別在一題中得到滿分,其他的都是水回來的。如果仔細分析結果,其實我知道大家的實力不差,看過source code,知道寫得接近滿分的大有人在,就是只差一點點... 大家都盡了力,在4小時的腦力戰中不斷努力,而且其實每一題也有人想過滿分的做法(其實不是,有一題是沒有人想到的,而最慘的是出題者以為這一題是最淺的...)。
今次TFT可以看到大家對HKOI的認真程度,的確是有努力過的人,考得比預期好,加上天分(注意,我這裏是努力加天分,不是天分加努力,因為我個人認為在HKOI,尤其TFT,是努力比較重要的),便是香港的一流代表,能出去見人。所以付出的雖然多,但是看到的結果其實是很欣慰的。
我不得不承認,中間是有不怎麼令人回味的事情,但事情過了之後,是大家增加對彼此的了解,也是好的。詳細不會再說了,但其實我必須和你說對不起。哈哈,這又完了,真的很快又一年了,上年TFT還是不懂DP,今年懂了,上年TFT還是甚麼經驗也沒有,經過一年ACM的洗禮之後,又是另一個層次了。下一年的這個時候,不知又是如何呢?大概又是另一個景況了。
不久之後,又是HKOI 2012了,很期望,很期望看到一班新的選手,也很期望看到舊的選手學到新的知識,累積更多經驗,在比賽再創高峰。
P.S. 其實我在比完賽後的一句「你地覺得HKOI senior咁易,個個滿分,所以TFT出得難D」是真心話,說實,如果我不是希望大家下一年再接再厲,繼續玩HKOI,我不會儘量把題目難度降低的。:-P
2011年5月17日星期二
HKOI TFT 2011 (2) system篇
平時mini-comp,做的server工作都只是一些latex和mysql,沒有甚麼真的很難(當然,我一開始也是甚麼也不懂的),今次單是system的選擇已是困難的開始。
選用Linux,其實一開始我也是挺反對的,始終大家平時用的都是Windows,用command line已經少,更何況用Linux,因為我仍然很記得我一開始用Linux的不習慣,所以我很擔心參賽者可否在短時間內學懂。因此,當知道Linux是一定要用的時候,我特地在judge提大家要早一點到,而比賽中也會提供一切與system有關的協助,幸好,一切都沒有因system做成很大的影響,最少沒有人因為system而交錯題目,或是改錯名,這是比HKOI的一大進步。
然後,是judging system的難題,一向我們用的program是給Windows的,一轉用Linux,便要用HKOJ的judge。有幾樣東西judge是不支援的,因為基本上judge的模式是用ACM的,反應大多只有Accepted,WA,TLE之類,對分數的分派是比較落後的。簡單來說,它是沒有分case給分,即是每一個case佔的分數一定要一樣。另外一樣是沒有partial scoring,即今次mars所要求的評分方式。因此,我今次「有幸」可以研究judge個program的運作,並且在judge作了一些改動。以今次比賽的評分來說,又有partial scoring,又有interactive,真的不簡單。
另外,別以為一個judge便可以解決整個比賽的judging的問題,因為除了要judge之外,還要batch run同給feedback。因此還是要用那一個perl的程式。食judge的feedback的問題搞了我很久,但最後都是在Pascal的部分TLE的情況下失敗,是今次judge的一個遺憾。
最後的network問題,也是今次最無助的地方,被Hackson秒速解決,但由於那個網路實在是太可惡了,所有network都不是互通的,因此都是要回到那逐部機用手指copy的慘況,雖然遲了judge,但結果還會是一樣的...
看看有沒有時間研究一下個judge,很希望把HKOJ改得更好,以後support比賽可以更方便和更完善。
選用Linux,其實一開始我也是挺反對的,始終大家平時用的都是Windows,用command line已經少,更何況用Linux,因為我仍然很記得我一開始用Linux的不習慣,所以我很擔心參賽者可否在短時間內學懂。因此,當知道Linux是一定要用的時候,我特地在judge提大家要早一點到,而比賽中也會提供一切與system有關的協助,幸好,一切都沒有因system做成很大的影響,最少沒有人因為system而交錯題目,或是改錯名,這是比HKOI的一大進步。
然後,是judging system的難題,一向我們用的program是給Windows的,一轉用Linux,便要用HKOJ的judge。有幾樣東西judge是不支援的,因為基本上judge的模式是用ACM的,反應大多只有Accepted,WA,TLE之類,對分數的分派是比較落後的。簡單來說,它是沒有分case給分,即是每一個case佔的分數一定要一樣。另外一樣是沒有partial scoring,即今次mars所要求的評分方式。因此,我今次「有幸」可以研究judge個program的運作,並且在judge作了一些改動。以今次比賽的評分來說,又有partial scoring,又有interactive,真的不簡單。
另外,別以為一個judge便可以解決整個比賽的judging的問題,因為除了要judge之外,還要batch run同給feedback。因此還是要用那一個perl的程式。食judge的feedback的問題搞了我很久,但最後都是在Pascal的部分TLE的情況下失敗,是今次judge的一個遺憾。
最後的network問題,也是今次最無助的地方,被Hackson秒速解決,但由於那個網路實在是太可惡了,所有network都不是互通的,因此都是要回到那逐部機用手指copy的慘況,雖然遲了judge,但結果還會是一樣的...
看看有沒有時間研究一下個judge,很希望把HKOJ改得更好,以後support比賽可以更方便和更完善。
HKOI TFT 2011 (1) 題目篇
今年的TFT,第一次不是以參賽者的身分出席,感覺又是完全不同,所以今次blog想說的,主要不會是圍繞題目,而是想說說整個籌備過程的經歷。
基本上今年的TFT的籌備過程的人手不多,所以每一個人的工作量也隨之而增加。可是,今次的過程學到的技巧,卻是當初也沒有想過的多。更出乎我意枓之外的,是今次TFT中,我對自己的了解。
先說題目吧,可能大家會比較有興趣一點。今年可以選擇的題目並不多,而題目之間的變化也不多,加上大家也希望題目以優美為目標,所以其實大部分的題目並不太適合TFT。始終TFT的主要目的是選擇合適的學生作為代表香港參加IOI或NOI,這個目標已經很難達到。
要知道太難的題目又會令所有人的分數極低,即使可以強行選出8位選手,卻難以令一班trainers以至其他trainees認為這會是最合適的人選,我自己可以想像的情況是︰
(1) 一位參賽者因某一方面(不是整體的algorithm,而可能單單是combinatorics)特別強,令他在其中一條題目拋離其他選手,從而得到代表香港的資格。要知道外面的比賽考的並不一定是TFT的題目,即使他在一方面特別強,出到去其實可能甚麼也不能,結果在比賽中表現不如理想,很明顯,他未必是理想的人選。
(2) 某數位參賽者因在某一題(或者其中幾題)成功水分,令他們以些微分數,擊敗其他更有實力的選手。你可能會認為,這樣選出來的人,是經過正確的途徑去選,而落選的是因為他的發揮未夠穩定,沒有甚麼不妥的地方,可是,我希望選出來的人是具有實力的,儘量不是因比賽的小技巧而得到代表香港的資格。小技巧固然有用,但在香港的選拔體制裏面,是一次定生死,以運氣為主的方法入選,未免太不公平了。
此外,太容易的題目一樣會令原本較有實力的選手落選。如果比賽有partial feedback的話,是沒有問題的,最少每一個人的不確定性會減到最低。但因為比賽連compile和run sample也沒有,很多時會因為一些很無聊的bug而損失大量分數,同樣選出來的人並不是有實力,也不是好運,只是其他應被選的人沒有運而已。
所以,選合適的題目完全不容易,為此我們也談了很久,題目的難度是其一,類型也是考慮因素之一,總沒有可能4條都是DP吧...其實還有其他考慮,其中一樣是希望實力未達到入隊水準的也有一個很好的比賽經驗,當中最重要的是給他們成功感,但又不能因此出一條很容易的題目,令可以作為真正選人的題目只有3條,反正很多時最好與最差的選手的實力相差太遠,很難以4題分別顧及這兩種人。
最後,出來的效果並不如理想般好,但勉強都算達標。真的是一線之差,就令整個TFT的意義失去,的確,只有2個人可以在一條題目中滿分,是比我們想像中要差。幸好,參賽者也明白題目的內容,負責problem statement的我感到安慰,尤其是第一題,概念很複雜,又要用一些較實際的例子來說明,又不可令statement太長,真是修改又修改才成為最後的版本。
訂閱:
文章 (Atom)