読者です 読者をやめる 読者になる 読者になる

学習の栞

学びたいことと、学ぶべきことと、学べることの区別がついてない人間の進捗管理

ACM-ICPC2016 アジア地区つくば大会参加記

雑記 競技プログラミング

チーム t9qmib (九州大学) でACM-ICPC アジア地区予選つくば大会に参加していました.結果は6完19位.これはその参加記です.

メンバーは私,nola_suz,nikollsonの3名にコーチのgrrifon_zero.同じメンバーで参加するのは昨年以来2度目です.チーム名は我らが偉大なる先輩climpetさんからとりました.

前夜

研究室から帰りアイロンがけやら荷造りやらを始める.荷造り終わった時点で既に日付が変わっていたため絶望する.なぜ8:00発の飛行機を取ってしまったんだ.9:00発でも問題無く間に合っただろと愚痴る.

1日目

なんとか飛行機に間に合う時間に起床.睡眠時間は驚きの3時間.空港行ったら福岡空港第一ターミナル閉鎖の影響でレイアウト変わってるし,保安検査場が異様に混んでるし,もしかして飛行機に乗れないんじゃないかと思った.

なんとか飛行機に乗り,羽田に着くなりメールの着信に気づく.コーチからの「飛行機が欠航した」メールである.そして,チームメイトからも「飛行機が欠航した」のDMが...

I hate Jetstar.

飛行機はANAJALを取るべきである.
この時点でチーム4名中2名の遅刻が確定する.

焦ってもしょうがないので空港で軽食を食べたあとつくばへ向かう.空港から出ていたバスに乗っても良かったのだけどICPC運営の推奨ルートでつくばへ.秋葉原まで出てつくばTXのほうが安い.つくば駅近辺で昼食にする.昼食中にコーチからDMが届く.

コーチ「ねえ,もう一人のチームメイトも遅刻するって知ってる?」
私  「???????」
コーチ「いやぁ,僕も今さっき聞いたんだけどどうやら本部のほうには連絡してるらしんだよね.本部から彼も遅刻するって聞いた.」

\(^o^)/オワタ

無事1日目チームメンバー1人での参加が確定する.

受付を済ませようとするが,4人揃ってregisterらしい.もちろん弊チームは1人しかいない.受付のアミラーゼ伯爵に「2人は遅刻すると聞いていたけどもう1人は?」みたいな感じのことを聞かれる.

伯爵「あー,九大チームね.二人遅刻ってのは聞いてるけどもう一人は?」
私 「彼も遅刻らしいです」
伯爵「まじかー...遅刻する理由とか聞いてない?」
私 「聞いてないです...」
伯爵「連絡つく?」
私 「つかいないです」
伯爵「あー......ジャッジ団の判断を仰ぎます.多分大丈夫だとは思うけども.」

みたいなやりとりの後,ジャッジからregisterして良いとの判断が出てどうにか失格は回避.ほんとご迷惑おかけしました.

で,「一人しかいないので,注意事項のアナウンスだとかルールについて把握してしっかりメンバーに伝えてくださいね」と言われる.英語ニガテ勢には辛いが,registerさせてもらえたのでがんばった.

register後,会場までの案内の時
staff A 「九州大学チーム...メンバーは1名???」
staff B 「ああ,九大チームね.はいはい.」
staff A 「えっ,よくあることなんですか???」

というやりとりがある.さすがに,registerにメンバー1人しか間に合わなかったというのは前代未聞なんじゃないのかな.

九大チームt9qmibの周囲には EfficientCoefficient (東大), Do Touch Everything (阪大), nocow (農工大)と有力チームが配置されていることに気づいてびくびく.JAG合宿でお話ししたヘクトさんやら,yazatenさんやらに声かけるなどする.

その後,トイレに行く時は手を上げてスタッフに声をかけて行くことだとか,割と重要な注意事項を聞いたりする.ちょくだいさんが両手を挙げて「トイレトイレー」と叫びながらトイレに行く理由が分かった.

プラクティスではとりあえず問題としてみたり,わざとWAになる提出をしてジャッジシステムがどういう表示になるのかを確認したりする.practice B問題を使ってジャッジサーバの強さを確認してみたが,浮動小数点の計算で1secで1e8はokで2e8ではだめだということがわかった.どうやら,CFやTCのサーバーほど強くはなさそうだ.また,競技環境にログインする時,ID/パスワードを入力してから実際に操作可能になるまで思いの外時間がかかることもわかった.

プラクティス終了後,他チームはスタックの広さを確認するなどしていたことをtwitterで知る.やっとけばよかったな.

つくば大に移動しての懇親会ではメンバーが2人に増えた.
チーム紹介は割とうまくいったと思う.いらすと屋の猪がのっそのっそ歩くアニメーションは結構笑いを取れたようだ.

懇親会終了後,ホテルにてコーチと合流.これで3/4揃った.
とりあえずTシャツや名札や資料を渡して一般的な注意事項を伝えるなどする.

23:00前に最後のチームメンバーが合流ようやくメンバー全員集合.よかった.

Tシャツや名刺を渡して注意事項の説明,そしてプラクティスで分かったことなど伝える.

布団に入ったのは日付変わってからだった

2日目

4:00ごろに目が覚める.二度寝を決意.
5:00ごろに目が覚める.三度寝を決意.
5:50ごろに目が覚める.もう寝るのはあきらめた.

朝食を摂った後,どうせこなるだろうと思ってあらかじめ準備しておいたユンケル黄帝プレミアムを飲む.備えあれば患いなしとはこのことである.

入場

入場前に持ち物検査がある.筆箱に入れておいたUSBメモリを出し忘れている人が多数居た.これは罠だ.筆箱から必要なものだけを取り出して残りはコーチに預けた.

コンテスト

開始と同時にA問題を読む.やるだけだったので8分でAC.
B,Cは任せてD問題を読む.

Dはにぶたんと嘘解法を立て,Bと並行して実装する.BがACした頃に,Dのにぶたんは嘘解法と気づき,Cを実装してもらう.

CがACしたあと,Dをハッシュで書き直す.D問題までAC.

ここまで2時間.ペース的にはだいぶ遅い.

E問題を読んだnikollsonが「あっ,これやろう」と言い始める.僕とnola_suzは「これ,強実装やるだけだし手を出してはいけないやつだ」と判断していたので止めたがnikollsonが「イケルイケル」と言ったのでそのまま実装してもらった.結果的にこれが fine play で実装開始から2時間ほどでデバッグまで完了していた.nikollson強い.

で,E問題の実装中にAC数の多いG問題をnola_suzと考察.貪欲にシミュレーションすれば解けそうという話になり,コインを置ける位置を区間で持つ感じのシミュレーションをする解法を立てる.オーダー的に難しいよねみたいな話をしていたがクエリ先読みでオーダー落ちるという結論が出た.nola_suz が実装するものだとばかり思っていたが,「じゃ,実装してください」と言われたので実装する.残り30分で6完.

その後はどうせ残り時間で実装まで終わらせるのは無理そうと言いつつ,どうにかなる問題がないか問題を漁っていた.

6完のままコンテスト終了,最終順位は19位でした.

感想

「6完できたし,PC使ってなかった時間は解ける問題がなくなった最後の30分だけだし,チーム戦略としては上手くいってたよね.」という話になった.解ける問題は全部解いたしあとの問題解けないのは実力不足としか言えないので,本当に上手く行ったと思う.

講評・表彰

会場の壁に魔方陣が描かれていたり(本当によく気づいたな),Cxiv-Dxivと上海交通大チームの争いが熱かったり,上海交通大のインタビューがめちゃくちゃかこよかったりした.講評の最中に地震が起きたがそのままスピーチが続けられた.

懇親会

各社の企業ブースで問題を貰って問題を考えてたりした.google問題のネタバレを聞いたが凝っていて面白かった.

まとめ

酷いトラブルがあったが,大会では今持ってる実力を出し切ったと納得できるだけの仕事はできた.これでICPCは引退になってしまうので寂しい.