2011年6月20日星期一

上海 - Day 14

難得有一日是"Working from home",我當然不會錯過這自由的一天吧。可是自由當中,也許都是要work,所以最後都是決定要回公司一趟。

但重點是回公司之前的一段。今天是來上海以後數得出的藍天,雖然比往日都要熱一點,但是出去走走仍是賞心樂事。約了兩點去中國銀行開戶,之前特地早一點出門,去了賓館對面的華東師範逛逛。一入去,本來想沿著地圖的路直接去,但之後卻一次又一次地被草地以及各個建築物吸引,越走越遠,最後都是要快步走直路下去。

在華東師範入面,最特別,也最突出的,要算是圖書館了,兩座建築,一高一低,佇立在一個平台上。高的呈圓筒型,卻不完全是圓筒,有著一點螺旋的味道。外牆都是玻璃,一塊一塊不完全平面的玻璃貼上去,雖沒有中銀或是國金的雄偉,卻在一個市郊地方中顯得頗有氣派。平台的另一邊便是低座圖書館,沒有高座的宏偉,但它的設計,卻是以扁為主題,與高的成了強烈的對比。扁並不是指扁平,它的扁顯出了扁的弧線美,以同樣弧度的玻璃貼上去,完全融合在整個設計當中。

單是這兩座建築並不足以令我驚訝,但當四周的草地都是嫩綠色,而站在圓形平台上的我可以一覽大學全景,加上兩座建築的融合,很難使人不感到慨歎。

哈哈,我是有心想仔細描繪出我當時的心情和所見之物,以彌補沒有帶相機拍下這優美的景色。

上海 - Day 13

如果每天都是出市區,實在是太累了。今天,很有意地選了一個很近的地方----吳涇。

「近」的定義,在上海來說,是可以走路到達,而走路的時間,通常以一個小時為限,這標準在香港來說,是不合理的,但上海地方大、交通又不如香港方便,所以在未有單車前,走走路也是很正常的事。

以為吳涇沒有甚麼看,初時決定去的原因只不過是因為想出去走走,沒有甚麼期望的。一直走過去,街道上漸漸熱鬧起來,在街邊的一個小公園,竟然都是上了年紀的人,一圍是打麻雀,一圍是玩啤牌,各式各樣的玩意,在悠閒的星期日打發時間,無疑是一個好選擇。

我們的肚了都餓了,此時最關鍵的,莫過於找美食。見到街上的小孩都拿著木籤串著的香腸,又有不同的肉,我們知道附近一定有好東西吃。果然,不久的前方街角,便是一家小食店,我毫不猶豫的過了去看,也買了一條腸和一隻雞脾吃,吃完,覺得口渴,又到旁邊的飲品店買了杯奶茶,之後又覺未飽,再沿步行街走,到了另一角,又買了手抓餅吃,此時終於滿足了。

其實街上還有很多街坊價的衣服和鞋,有機會一定會再來買東西。但今天的行程並未完結,之後是交大的參觀,走了好一會,看見令人不禁要買的書店,又吃了交大數元的晚餐,這樣才大致結束可愛的一天,很寫意的一日,如果不是住在這偏僻的地方,也許我沒有機會去嘗嘗上海的小市鎮。

2011年6月12日星期日

上海 - Day 5

不知不覺,來到上海已經5日,也算是開始對這個城市有一點認識。其實,上海一如其他同事所說,是沒有甚麼東西玩的,因此我今天出去也沒有抱甚麼期望。

之前去了人民廣場那邊,今天想去科技館,但是太遲出門,加上賓館出市區實在太久了,即使乘729加即轉地鐵也要一個多小時才到,因此還是放棄了科技館的念頭,去了較近的徐家滙,也是同事推介的地方。

去到,一出去便是恒隆的大廣場,很有香港特色,但價錢也是香港的,雖不是很值,但還是在那裏吃了午餐,當是出外吃一餐好的吧。之後在附近逛,都是SOGO式的百貨,時代式的商場,價錢都比香港貴,沒有買任何東西。

在最失望的時候,往往有一點點的驚喜。在林立的商店旁邊,有一個小小的公園,叫徐家滙公園。沒有很大型的擺設,只是一個小湖,兩旁被樹包圍,中間一條橋貫穿整個公園。簡單而別緻的設計,卻叫人們都離開那些大馬路的噪音。下著微雨,走得特別慢,享受叫人感到溫馨的天氣,又是一個令人嚮往的小時。

徐家滙公園的小石路

之後去了上海圖書館,與中央差不多大,但獨特的是它的氣質。在古籍閱覽室,放的是高貴的木椅,閱讀的人都有木製的書架,放著一本發黃的書,這是中央找不到的。

見時間尚早,便去了豫園,是一個老上海的集散地。很特色的建築,很特色的戲,很特色的食物,雖然人多,但也不失其遊覽樂趣,可惜的是未能嘗到出名的小籠包,下次一定會再來。

唱戲的人

晚餐︰灌湯包,小籠包,蒸蛋,荷葉飯


2011年6月8日星期三

上海 - Day 1

難得來到上海,又可以順利上網,當然要打下blog慶祝一下啦。

5點半起身,但並不疲倦,轉眼便到上海。乘了不太快的磁浮火車,再經很多的轉接才到虹梅南路。以為會很快到,再看清楚地址,才知牌號是5858號,我一開始以為是中間跳了很多,坐在的士上才發現是很遠的,由1號,一至數著,1000、2000、很久很久,才到了賓館的5858號,幸好賓館的房間很好,令我對上海也有不錯的印象。

上海真的很上海,每一個人也有著上海的味道,不知道怎樣形容,但總是可以從各方面中看出來。晚上吃了放題,29元而已,不算好吃,但看見價錢,的確不得不投降。

見了whh,認識了一點附近的社區,很優美,不是香港可以感受到的空曠,那種在地大脈搏的中國的溫帶地方晚上的涼快感覺,真的叫人可以在街上細細的享受。

2011年5月17日星期二

HKOI TFT 2011 (3) 感想篇

出過題目,整過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

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比賽可以更方便和更完善。

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太長,真是修改又修改才成為最後的版本。