前几天第一次参加了 ICPC 区域赛,在此写一篇比赛和旅游游记。

虽然打铁了,但这次经历还是比较深刻的,也算是学习和提升认知了。

Day -x (x>2)

当时教练问我们是否报名香港站区域赛,并且学校不给报销。虽然手头拮据,但机会难得,和队友考虑再三后最终决定去参与一下,预计人均最终消费 1000+ RMB。

一开始付款就犯了难,报名费 1800 HKD,PayPal 一直支付不成功(不想被 PayPal 收 70 RMB 的手续费),后面注册了一个 PayPal 账号,添加卡后终于支付成功。

考虑到正赛在早上九点,最终决定周五在深圳住一天(住在靠近罗湖关口的酒店,一晚约 300 RMB),在香港住两天(旺角某大厦的公寓,两晚约 1400 RMB)。

Day -2 & -1

虽然没什么课,但是要考数据结构。两天一共花了五六个小时,大概熟悉了一下考点和本学期学了的内容,剩下时间都在加练备赛。

第二天下午的数据结构考试,原本想着半小时手起刀落秒了,结果出现一系列问题:

  • 出题人把快排填空题出错了,折腾了几十分钟还以为我学了个假的快排。

  • 读代码题中有一个队列题,函数名 enQueue(Q, x)deQueue(Q, x) 不知道是啥玩意(也没写函数实现,貌似出题人默认我们会了),思考十分钟后灵光乍现是入队和出队,有惊无险地解决了本题。

    (话说代码题考 C 但是又拓展了引用特性未免有些奇怪...)

最后做完还剩一个小时,想着还是检查一遍吧,最终非常幸运地检查出了三个错误。但是考后复盘发现堆操作题忘记把最后一个重复元素入堆了...

晚上在收拾行李,顺便采购了一些赛场上要吃的食物,结果买得有点太多了,提了一大袋子回宿舍...

晚上准备去取快递(英标转接头),没想到事出反常,快递站竟然关门了...只好祈祷明天早上会开门。

Day 0

早上九点的高铁,遗憾的是快递站并没有开门。

到了深圳先在酒店安顿行李,发现房间比较小,而且床是正四边形的,三个人只能乱睡,不过反正只住一天,随便凑合了一下。

打算在这座从未涉足的城市随便逛逛,先前在高铁上随便做了些攻略,放下行李后便沿贯穿东西的深南大道游玩。

从一号线坐到老街站,打卡了中国内地第一家麦当劳,这家麦当劳足足有三层,顶层还有一个小花园。但可能是白天的缘故,并不多人,老街的地下商场以服装售卖居多,也并无特别吸引人之处。

下一站原想参观全球最大的电子元器件集散地——华强北,但考虑到同行队友对电子产品并不特别感兴趣,以及社交媒体上“华强北主打批发,对散客不友好”的资讯,便决定直接去深圳博物馆。

想起之前一位朋友所述,“来到一座新城市,就应该去一下这座城市的博物馆。”博物馆内有足足三层,考虑到时间有限,我们只游览了顶层改革开放相关展厅。博物馆走走停停看看,不一会便腰酸背痛,下午两点左右到附近的市民中心随便应付了午饭。

下一站是梅拉尼亚小镇,这实际上是个商业气息略重,人气却并不高的景点。队友 yxuan 太困,在椅子上睡了一个半小时。小镇的旁边就是著名的世界之窗,可惜门票性价比并不高,故只在外面潦草地拍了几张照。

黄昏降临,打算去深圳湾公园,想感受一下当地居民在晚风中散步的惬意,可惜地铁周转麻烦,于是选择了叫网约车。周五的晚高峰往往是最拥堵的,到达公园后晚霞已经消散得差不多了,只剩下巨大的夜幕和远处地平线的落日余晖。

太久没有旅游,傍晚时已力竭,正巧妈妈在宝安机场转机,匆匆赶至机场短暂小聚后直接坐地铁回酒店了。

一天的深圳游,说长不长,说短不短,遗憾的是没有到南山区看看南山科技园和众多高等学府,也因疲惫没能在被誉为深圳之眼的岗厦北地铁站驻足。感觉深圳的人文底蕴并不特别突出,路边总缺少一种“烟火气”,又或许是我太过匆匆,没能静下心来品一碗人间烟火吧。

Day 1

早上起床洗了个澡,收拾行李入关。香港的公寓不提供免费的一次性用品,故临走时在酒店薅了几套牙具。

过关非常顺利,可以在走廊的玻璃上看到出深圳河的过程,出境后直接可以用微信小程序直接乘坐港铁东铁线。

香港有一个和内地不同的“左行右立”的习惯,扶梯左侧是留空供时间紧急的行人迅速通过的,而右侧才允许站立。

坐在座位上看着东铁线穿过山丘和平房缓缓驶入市区,下地面换乘观塘线坐到旺角,在经过数不清的扶梯和阶梯后来到地面,脑海中关于香港的想象都具象化在了眼前。面前极具香港特色的霓虹般的景象让我想起了小时候看过的一本书,叫《时代广场的蟋蟀》,里面的蟋蟀在跳出纽约地铁来到地面时,大概和我的感受差不多吧。

穿梭熙熙攘攘的人群,进入公寓所在的大厦,直梯是狭小的,走廊是狭小的,前台是狭小的,房间也是狭小的。行李箱在地上打不开,卫生间只够转身。但在香港这个寸土寸金的地方,能以这个价格在繁华的旺角住两天也未尝不可。

安顿好行李后乘坐地铁和小巴到达港科大北门,小巴仅支持八达通和港币现金,司机们虽然驾驶的是体型略显笨重的小巴,但我想他们都有一个飙车梦,中间连续飞了几个站(无人下车和上车,司机直接不停靠站点)后,我们很快到达了目的地。

下车后往前走几步就见到坐落在 Entrance Piazza 的标志性红鸟,略微合照后来到旁边的星巴克签到领取物资。每人一件粉色赛事卫衣(我在包装上看到天猫,想必是内地购买寄到香港的)、一张选手证、三张 50 HKD 的餐券和带有港科大标识的手机支架。或许是第一次参加不太清楚(其它赛站是否也与此相同),又或者是主办方和赞助商非常热情大方,而我惊讶的是,在这里,星巴克是随便免费喝的,现场有三个赞助商——HUAWEI、Jane Street 和 HRT,用英语略微沟通后得知它们的物料也是随便拿的(她说 Just grab anything you like),并且也物料非常丰富:

  • HUAWEI:奶龙玩具、帆布袋和随便喝的现磨太平洋咖啡。
  • Jane Street:桌子上的随便拿,有两种文化衫、魔方、花切扑克和一些益智小玩具。
  • HRT:两种文化衫,一件运动裤,一个水杯。

拍完队伍合照后在科大校园闲逛,校园坐山紧邻牛尾海,可以欣赏到不错的海景。地上建筑有多层,地下还有多层,层与层之间往往以扶梯相接。午饭品尝了最经典的港式烧味饭,搭配港式冻奶茶,吃的令人飘飘欲仙。后来手机没电了,故回到签到处,在椅子上稍作小憩后便去到何善衡体育馆开始今天的热身赛。

找到座位后直接震惊了,前面坐的就是北大 Naive Birds(呆呆鸟)队伍。比赛用机屏幕非常小,配置也很低,但对于 Ubuntu GNOME 而言绰绰有余。

看到赛事手册上为系统提供了两个命令:

submit A.cpp // 提交 A 题
printfile A.cpp // 打印 A.cpp 的代码

这个功能简直炫酷又方便!运行 printfile 后一分钟之内工作人员就会拿着打印好的代码送到你的桌前。

由于赛题仍需要保密,关于赛时的经历将在未来更新。

比赛结束后去校内另一家餐厅吃了一份萝卜排骨和鸡翅饭,感觉并无中午的烧味饭好吃。

鉴于热身赛的表现,~~而且我选修课结课作业还没交,~~我们决定先不旅游,而是乘小巴和港铁回公寓加练。

Day 2

今天睡了一个好觉,早早起床洗漱后坐港铁到钻石山寻找赛事接驳大巴上车点,成为第一个上车的队伍。

在车上和星巴克复习了一些算法和 pbds(虽然大多数基本没用上)后,进入体育馆准备开始今天的正赛。

由于赛题仍需要保密,关于赛时的经历将在未来更新。

比赛结束后大家都有些许闷闷不乐,也许是最后没能调出 K 题冲铜吧。

后面才发现 H 题(粉色气球,是本场赛事主题色)和 K 是最简单的,莫非对应 Hong Kong,是个小彩蛋?

在体育馆外领取了一些用作午饭的星巴克面包,去到 LT-J 报告厅等待题解和滚榜,由于是两小时后开始,便在此期间做了一些香港游玩攻略。事实证明队伍水平还不够,只能说菜就多练。但毕竟已经结束了,就好好地旅游吧。

题解和滚榜全程英文进行,讲题解的小哥有些中文口音和阅读习惯,如“J”读成“勾”,以及“I don’t know how to speak it in English, but in Chinese we call it 线性基.”,最搞笑的是 O(nlog2n)O(n\log^2n) 嘴一瓢读成了“n log 方 n”。

后来有一个 HUAWEI Theory Lab 的大牛发表宣讲,他一开始给了一张扑克牌 K 的照片,上面有一道题,是他在瑞典出题时的一些废案,难度从 A 到 K 逐渐增加。他说如果有人能在他宣讲完后能做出这道题的人,奬一个华为手表。

他的宣讲题目大概关于 Practice and Theory,在中间举了一个例子去解释理论和实践的区别:现在的矩阵乘法可以将复杂度降到 O(n2.37)O(n^{2.37}) 左右,但是现在为什么主流还是在使用 O(n3)O(n^3) 的朴素算法呢?原因是因为它非常适合并行运算。

后面的滚榜和合照也是非常有氛围,可惜没能获奖。

最后主办方说有多余的赛服、键盘和鼠标在外面,可以自行领取。结果一看,这键鼠不是我们比赛时用的吗??实在有些搞笑,主办方说这些东西在香港的购买成本远低于储存成本。最终也是随便拿了件衣服就走了。

在餐厅吃了最后一顿饭,这顿饭十分难吃,淡而无味如白人饭,但为了不浪费粮食,最终也是吃完了。

坐小巴和地铁回公寓,放下东西轻装上阵到中环随便逛逛,中环站和香港站正好有一个李小龙 85 周年的地铁展,于是去参观了一下,领取了一张纪念卡。

从中环 J 出口出来是素雅的终审法院,橘黄的灯光下,来来往往的叮叮车给中环更添了几分港味。一路沿着人行道走到中环街市,街市里很多店门都紧闭着,可能是星期天或者太晚的原因,并不非常热闹。

中环有太多路口,每隔两三步就是一个红绿灯,天桥是缩短行程的一大工具。中环的天桥很长很广,就像给行人专供的路网,可能从这栋建筑里穿进去,又从另一栋建筑里穿出来,可以通过天桥来到几乎所有的被马路分隔开的建筑区块。

经过天桥的兜兜转转,路口的来来往往,在导航的随机偏移下终于到达了中环的摩天轮地标。摩天轮很便宜,每人 20 HKD 就可以转三圈。此时人并不多,我们很快就上去体验了,虽然最高点并不太高,但是足以远眺到维多利亚港和对面的尖沙咀。

天星小轮的码头就在摩天轮旁边,它并不是观光游轮,而是一个搭载和运输的工具。价格非常亲民,5 HKD 就可以从中环到尖沙咀,虽然时间并不长,但足以让我们在维港上欣赏这座城市最美丽的夜景。

下船后我们直奔旁边的麦当劳,其实这也是此行的一个任务——体验香港的麦当劳。在花费 30 分钟折腾 App 后决定在点餐机上点餐。早在社交媒体上听说内地的麦当劳和香港的不一样,事实也的确如此,香港的小薯相当于内地的中薯,而且吃法是将粉包和薯条一起倒进一个纸袋里 shake,与内地蘸番茄酱的吃法也略有差异。

我选择了套餐里一个内地没有见过的汉堡,以及内地早已下架的奶昔。美味是必然的,只是突然想起陈奕迅那首《麦当劳之歌》:

麦当劳汉堡 好好好~

麦当劳薯条 条条条~

麦当劳奶昔 奶奶奶奶奶奶奶~

顺便感谢队友 yxuan 请我吃麦当劳作为生日礼物,实在是破费了!

其实吃完麦当劳已经快十二点了,于是我们便直接搭乘港铁回公寓休息了。

Day 3

睡到自然醒,今天打算在油尖旺区随便逛逛。

在公寓琢磨了一个小时在思考去哪个冰室才好吃且态度好,但听说茶餐厅本来就是用来快速填饱肚子走人的,不应对服务态度有过高的奢求,所以最终选择了尖沙咀的红茶冰室。

但出乎意料的是,服务员大叔友善且耐心地给我们解释,并不像社交媒体上说的“不耐烦”,在听见同行的队友使用普通话聊天后,他便切换到一口发音并不特别标准的普通话和我们沟通。我点了一个菠萝油和牛奶红豆冰,队友点了车仔面,都是非常经典的港式茶餐厅菜肴,总体而言体验是出乎意料的好。

队友提议到九龙公园散会步,刚进公园不久就看到香港文物探知馆,里面有一个名为“唐风万里”的展览吸引了我们,于是决定一探究竟,事实证明我们来对地方了。

这个展在公园内,人气并不高,里面工作人员的人数甚至比游客还多。它相比众多内地的博物馆简直高级太多。里面有很多的互动设施,如覆盖在馆内各个角落的套色章、和展览相关的电子游戏、一个可以全视角观看的木质建筑(为了避免破坏,建筑被放在一个圆形转盘上,转盘的一部分露出展柜供游客旋转欣赏,甚至提供了三个观赏窗以观察内部构造),馆内甚至有一个中型的中式建筑风格的乐高积木展柜,而这一切都是免费的!

我写了个意见表,建议它们多做宣传,还收到了馆方的两件小礼品。原本在研究这个意见表怎么写和提交,旁边的工作人员大叔主动上来帮助我,后面临走时顺便还和闲谈了一会,这是我第一次这么长时间体验真实的香港对话情景。大叔非常友好,说话也风趣幽默,他跟我们介绍这个展其实办起来费了好大功夫,从内地的多个博物馆分别借了几十件组合出来的,还问我们从哪来,并分享他去那些地方的旅游经历。

从九龙公园出来可以直接通过天桥走到中港城,在一个叫做 China Ferry Terminal Observation Deck(当时并不知道那个地方叫什么,但是 Google Maps 上是这么写的)的地方拍了拍维港对面的上环景色。

此时剩余的时间不太充裕,快要接近开始返程的时间了,但我们最终还是决定速览一下星光大道。经过疾行,我们最终在一点半赶到星光大道,并像许多游客一样,将自己的手掌与著名明星相对比。可惜天气不太好,抑或是白天的原因,拍出的维多利亚港和中环建筑是灰蒙蒙的一片。

两点便回公寓取走寄存的行李,坐港铁回罗湖过关后坐高铁回校,这次的香港之旅就结束了。

读万卷书,行万里路。虽然比赛打铁了,但是能去现场感受 ICPC 的氛围,能去香港走一圈,本就是我大学生涯里难忘的经历,是我人生中精彩的一页。