ICPCアジア地区予選2013 会津大会参加記

 

2013年の11月にICPCアジア地区予選の会津大会に参加してきました。これはその時の記録です。

この半年後の世界大会に参加した際の参加記はこちら

topcoder-g-hatena-ne-jp.jag-icpc.org

 

出発直前


水曜の夜にアイマスのキャラ同士で殺人事件が起きるっていうノベマス

【Novelsm@ster】765プロアイドル連続殺人事件 第1話 - ニコニコ動画

を見始めたら引き込まれて思わず深夜2時ごろまで一気見してしまう。しかしやはりアイマスのキャラが、しかも仲間である765プロのアイドルを殺してしまうという内容がショッキングだったのでその後5時ぐらいまで寝付けず、さらに翌日朝早くから研究室のミーティングがあって凄まじい睡眠不足に襲われた。アジア地区大会直前に一体何やってるんだろう自分・・・。

 

11月23日


起床。昨日のアニマス再放送が録画されてること、ちゃんと千葉国際駅伝の録画予約が入ってることを確認して出発。集合場所である高速バス乗り場は家から歩いて行ける場所だったのでスーツケースをゴロゴロ引きずりながら歩く。バス乗り場に着いてICPC参加者の集団と合流できたのでまずは一安心。しかし家の近くにありながらこの高速バス乗り場を使うのは初めてなんだけど、まさかこういう形で使うことになるとはw

暫くしたのちバスに乗り込んで出発。ちょっとツイッターを見た感じチームメイトのtozanが時間に遅れそうらしいのだけど大丈夫だろうか。心配するも王子駅前のバス乗り場に着いたときにちゃんとその場にいて一安心。何だよ別にやばくなかったじゃんとかいったら普通に乗り換えに後ちょっとで間に合わなくて死んでたらしい。まぁ何にせよ良かった。

東京近郊から出発する人を無事全員乗せてバスは一路会津へ。evimaさんがバスの中でPCを開いて普通にSRMの問題を解いててやべぇってなる(自分が同じことやったら普通に酔いそう・・・)。あとコドフォの問題傾向の話とか、何か来月にあるリクルート主催の謎なプロコンとか一体どうなるんだろうねーって話とかをして時間を潰す。

そして最初の休憩SAへ。かつて中学の時にテニス部の合宿でSA休憩の時にバスの場所が分からなくて探しまくった(しかもその様子を中にいた人達からばっちり見られていた)というトラウマがあるので絶対に他の誰かから離れないように行動する。あとここで、スーパーマリオワールドの最近話題になってるTAS動画を上げてる人が、最近Atcoderでもしょっちゅう上位を取ってるantaさんだということを聞いて超びっくり。まだ会ったことはないけどどんな方なんだろうか。

休憩を終えて再びバスが出発。この辺からもう半分寝てたけど、何か道が混んでて到着が遅くなりそうだとか何とか。スケジュールもちょっと再調整中とのこと。なので二度目の休憩SAの時に昼飯はここで取って下さいという話に。自分は自動調理自販機(あのたまに置いてある、焼きそばとかポテトとか作ってくれるやつ)でホットドックを買ってみるもクッソしょぼいパンにくっそしょぼいソーセージがちょこんと挟まっただけのものが出てきて悲しみに暮れる。

その後予定より遅れながらも何とか高速を降りて会津市内へ。tozanがPCKで来た時どうのこうのって話をしてた気がするけど、自分はPCKで来たの6年前だし風景見ても全然分からない(まぁ電車で来てたのもあるけど)。そして漸く会津駅前に到着。おぉここはさすがに見覚えがある、めっちゃなつかしい・・・と感慨に浸る暇もなく、時間も押してるので早くタクシーで会津大に移動して下さいといわれタクシーに乗り込んで移動。

会津大着。この門の感じとか建物とか確かに見覚えがあるなーとか思ってたけど、会場に入ったら「あぁ確かに6年前もここで競技やったわー」と感動。その後慌しく机の上の物を整理したりチーム写真を撮ったりしてるうちに開会式スタート。まぁ去年もアジア地区予選は経験したしどうせアナウンスされる内容は大体一緒だ。

そしてトライアルユース&Javaチャレンジ。実行時間や使用メモリに関して色々調査。自分はmain関数の最後のreturn 0をTopcoderの癖でreturn outとかやった所為でセグフォって原因が分からずはまるということをやらかす。これやるの何度目だ・・・。あとClerの練習としてtozanがクソリプ的な質問を送ってたwそれから壇上に近くて色々と声が大きかった所為かうるさいと注意されるwそしてJavaチャレンジは時間がないこともあって適当に書いて適当に提出。ちゃんと競技に参加できるのかしら。

そしてバスに乗って夕食の会場へ。例によって料理の前で構えて乾杯の掛け声と共に料理をひたすら食べまくるwそしてチーム紹介タイム。0perasanのスライドが案の定色々とぶっ飛んでておもしろいw精華大のスライドにcgy4everという名前があってえ?ここに来てるんだ?ってなる。あとはスタッフとして来てたchokudaiさんやakenshoさんと話す。明日の本番中はネット中継があってあとでその映像を見れるらしい。楽しみだ。

そして会津駅前に戻ってホテルへ。移動中にevimaさんにもういっそ最後のreturn 0は書かないで下さいと釘を刺される。明日はちゃんと気をつけます。チェックインのために大勢でホテルのロビーで待ってたらlogicmachineさんが地元の女性にこれ何の集まりなんですかと聞かれてた。プログラミングコンテストの・・・とか説明しててへぇ~頭いいんですね、すごいですねと言われてるのを横で聞いてた。あとりんごがこのあと夜に○○って駅にいってみようとかいってる。コンテストが明日なのにすごい余裕やなw

そして各自部屋についてちょっと一息ついた後まぁ明日のことをチームメイトと話しておこうと呼びに行く。しかしevimaさんの部屋をノックしても反応がない。鍵がしまってなかったので(ここのホテルはオートロックではない)勝手に入るとベッドに突っ伏して寝落ちしてた。ちょっと危ない気もするけどまぁどうせ泊まってるのICPC関係者ばっかりだろうし大丈夫かな。メモに明日の朝食の集合時間だけ書き残して退出。その後部屋に戻って入浴。テレビを付けるとIPPONグランプリやってる。回答が色々と本当に面白くて最後まで見たくなるけど、流石に明日がコンテストなので適当な時間に就寝。

 

11月24日


無事時間に間に合うように起床。チームメイトと合流して朝食をとって持ち物を確認してバスに乗り込み会津大へ。うわーこのコンテスト会場のこの感じ6年ぶりだーとテンションが上がる。当時は恐らくリアル最下位だったんじゃないかと思うので何としても今回は結果を残すぞと意気込んでコンテスト開始。

コンテストは流石にもう詳細を全然覚えてないのでざっくりと書くと、前半の5問を通した後自分がI、evimaさんがH、tozanがGと分担して解いていく。Iは0perasanが爆速で通してて、これりんごが得意そうな問題だよな~と思いながら考えてたらりんごが作ったSRMの問題を思い出してそれと似たような感じで行けると思いつき、AC。Hも国内予選では似たような幾何にドはまりしたが、その時の経験が生きたのか今回はそこまでハマらずAC。最後に残ったGに3人で挑む。本番で試してたのは想定解法ではなさそうだったが、それでも枝狩りを加えまくって何とかTLEは消せたがWAが消えない。コードを3人分印刷して読んだりしてると、evimaさんが疑似乱数入力を計算する部分が怪しいのではないかと指摘。そこを直すとAC!残り時間も少なかったので3人で大喜びした(後から聞いたらここでもやっぱりうるさいぞと注意されてたらしいw)

コンテスト終了後はお菓子を食べながら色々と雑談する。その後会場で解説。英語だし去年同様全然理解できないwてかJの正解チームなかったとかこの地点で優勝チームネタバレしちゃってるけどいいんですかねwその後Javaチャレンジ。最初のトーナメント表にwakabaの文字がなくて絶望。やはりコンパイルできなかったのか・・・。途中で残り1秒での逆転劇で制したfuruチームがそのままの勢いで優勝。他のチームを見てるだけだったけどあつい戦いばかりで面白かった(小学生並の感想)

そして表彰式への移動のために撤収。折角だからと貰った風船を全部持っていこうとするも、会場の中でどこかに引っかかったのかIの白色の風船が割れてしまう。あぁよりによって一番貴重な風船が・・・。でも折角風船がいっぱいあるからと外に出たところでそれらを全部縦に繋げて高くまで浮かんでるところを写真に撮影。てかバスの前で早く乗れと急かされてる所こんなことやってて本当にすみません・・・

表彰式の会場に移動して最初は各スポンサー企業の方々のスピーチ。正直めっちゃ眠いしお腹が空いていたのでとっとと追われよと思いながら聞いてました。すみません。その後いよいよ順位発表。6位まで発表された後、凍結前7完だった精華大が5位によばれた(7完のままだった)のでこれは3位行けたなと心の中でガッツポーズ。その後4位の上海交通大に(これは大学別順位として云々という説明と共に)銅メダルが渡されたけど後ろで「おいそれ俺らによこせ」とか言ってたw

そして3位でwakabaがよばれて壇上へ。副賞はワイヤレスマウスらしい。去年の副賞(巨大ポッキー)と違ってちゃんと使えるものを貰ってうれしみ。その後は予想通り2位が国立台湾大で優勝が0perasan。優勝商品はPCではなくキーボードだった。ここは去年と違って大人しいなーと思ったけどまぁ彼らPCはもう十分貰ってるだろうしこっちの方が良かったりして。

その後は懇親会。また例によって飯を食いまくる。japljにどこかの企業の方が「若いうちは失敗したっていいんだよ」みたいなこと話してたので「そうですよね!若い時の一度だけの過ちを責めちゃいけませんよね!」と横から割り込む。japljは爆笑してるけど企業の人はぽかんとしている(当たり前だ)てか優勝チームの人ということで話しかけてたのにいきなり変な割り込みかたしてすみません(当たり前だよなぁ?)

そしてまたホテルへ。チームメイトと普段の練習はいっつもバグったまま終わってたけど今回はやってたの全部解けて上手くいったねーと話をする。まとまって近くのゲーセンにいく人達がいたけどまぁ自分は別にいまはそこまで音ゲーとか好きな訳でもないし・・・てことでそこには付いていかず。代わりにホテルの部屋に近くの温泉施設の無料入浴券があったのでperyaudoと2人で向かう。

温泉はホテルから歩いてすぐのところにあるんだけど、霧がめっちゃ濃いっ!大した距離じゃないけど暗いし知らない土地なので迷わないかちょっと不安になるwけどまぁ無事到着。色々な種類の風呂があって順番に入っていく。ワイン風呂というのがあって面白かった、浴槽がワイン樽の形だし(流石にワインがそのまま入ってるわけではないです)

一通り浸かった後は貸し出されてるローブ的なものを着て暫く涼む。その間に売店でコーヒー牛乳を買って飲む。コーヒー牛乳とか普段は飲まないけど銭湯とかでの湯上りには定番らしいので一度自分でも体験してみたかったというw館内にあったTVでは丁度フィギュアスケートのニュースやってる。町田が逆転で2連勝らしい、すごいな。女子はあっこちゃんがGPFに残れなかったのか。4年連続で出てたのにラストシーズンに出れないのは残念。てかロシア勢が4人もいるのにトクタミシュワいないし自分にとってはちょっとつらい結果だったなー。

そしてホテルに戻ってPCつけてTL見ると高校将棋部の面々が色々話してるので加わる。1年くらい一方的にフォローしてた後輩にやっと認識してもらってフォロバしてもらう。てか「先輩方アニメアイコンばっかりだなw」とは失礼な(遺憾)その後は適当にTV見たりして就寝・・・しようとするも寝付けない。仕方ないので部屋を出てみる。声が聞こえた部屋があったので入ってみたらりんごとsnukeとtozanがいたので暫く遊んだり喋ったりする。

その後また部屋に戻ってベッドに横になったら眠りに落ち・・・そうになったところで急に発汗してまた目が覚める。うーんやっぱ若干体調が悪いんだろうか?今日のコンテストで疲れたのとやっぱり水曜に殆ど寝れなかったのがまずかったのか。またすぐに台湾大会があるんだけど大丈夫だろうか・・・。まぁでも寝れないものは仕方がないのでTV付けて適当に見ながら横になってすごす。なんかのニュース番組でCCさくらのBGMが使われてる。そして楽天の優勝パレードのニュース。流石に東北の局だしこういうのは大々的に扱いますよね。

 

11月25日


朝食を食べて荷物をまとめてバスへ。去年は観光といっても企業見学だったけど今年はちゃんと観光が行われて良かった。あとスタッフとして参加してたiwiさんやchokudaiさんも一緒に参加してた。まずは会津城へ。城の中も外もいい感じだ。ここでiwiさんに昨日のキャスはいつ見れるようになりますかーって聞いたらchokudaiさんが録画を忘れてたので見れないとの事。ガーン。

続いて記念館へ。銃のシュミレーターをやってみるけど全然銃口が安定しない。難しい。そして昼食へ。iwiさんにそういえば5年前の2008年も会津大会だったんですよねと話したら、当時は東大内1番手争いが熱かったけど最近は2番手争いが熱いよねーといわれて若干申し分けない気持ちに。あとiwiさんレスリングリシーズは結構好きだったらしいw

昼食は出るんだけど折角だから喜多方ラーメンが食べたいよねということで何人かで歩いて喜多方ラーメンの店へ。途中で810と書かれてる八百屋を見つけてはしゃぐwで、店に着いて喜多方ラーメンを食べる。おぉこれは美味い!とくに麺の感じが凄く好きだ。これはわざわざ食べに来た甲斐があったわ。あとchokudaiさんがAtcoderの展開に関して、企業に対してはいろいろと進んでるけどできれば教育機関にも広めたいな。教育機関なら長いこと続きそうだし。といってるのを聞いてなるほどと思う。

そして帰ろうとするも実はバスの出発時間がやばいのではということに気付く我々。chokudaiさんが待ってもらえるように頼むために先に走っていってくれた。何か先輩にこういうことして貰っていいんだろうか・・・。しかも結構食べた後に走るのつらいし。

とりあえず無事にバスに乗れて会津駅へ。ここでまた帰りの高速バスの時間までしばし待機。スタッフの方々は電車で帰るらしくここでお別れ。ありがとうございました。残った選手で暫く時間を潰す。スポンサーグッツとして貰ったメジャーをいじって遊ぶ。これストッパーだと思ってたところは実はLEDライトのスイッチだったことが判明。LEDライト付きメジャーってどうなんだろうw独立に動くだけだしw

そうこうしてるうちにやっと高速バスが来て帰路へ。帰りのバスの中では普通に寝れて良かった。途中の休憩のSAでは雨が降ってたけど新宿に到着した時には雨が降ってなくて助かった。これにて会津大会終了。しかしまぁまたすぐに台湾大会があるからせいぜい前半戦終了ってくらいなんだよな。そして家に着いて暫くするとものすごい豪雨が。タイミング的にはラッキーだった。

 

まとめ

とりあえずコンテストの結果としてはかなり上手くいって満足。去年より明らかに問題が難しくなってる感じの中去年と同じ8完だし、去年よりつよい海外チームも多そうな中去年を上回る3位だし。運が良かったのももちろんあるだろうけど、好きじゃないタイプの問題も練習を積んだ成果が出てうれしい。

コンテスト以外の部分も去年より断然楽しめた。去年は開催地がオリセンだし観光もなかったしで正直コンテスト以外はないに等しいみたいな感覚(出させてもらっておきながらその言い草は何だ)だったけど、今年は旅行に来た感があって観光も楽しめて良かった。去年より知ってる競プロ勢が増えたこともあってその点も楽しめたかな(特に3つ下の元JOI勢が結構来てたのとかも)

あとやっぱ6年ぶりの会津ですかね。コンテスト会場めっちゃ懐かしくて興奮したし、当時はTCも灰色で全然コンテストに参加できなかった感じだけど、今回はほんとそこからのかなりの成長を実感できた。忘れ物はまぁ取り戻せたかな。

10年間の競プロAdventCalenderの記事を振り返る

競プロAdventCalender2020の21日目の記事です。2011年から始まったこの競プロAdventCalenderも今年でついに10年目。この間に日本ではAtCoderが誕生し、IOIの日本大会が行われるなどますます競プロ界隈は広がりを見せています。自分もその中で毎年AdventCalenderに記事を投稿し続けて来たので、10周年記念ということで振り返っていこうと思います。

ちなみに自分の去年までの記事ははてなグループに書いてきたのですが、はてなグループ閉鎖に伴う移行作業をすっかり忘れていたために闇に葬られ…そうになったのですが、しょラーさん(@shora_kujira16)がアーカイブを作成してくださったことにより無事に振り返りを行うことができます。この場を借りて感謝いたします。

 

1年目:好きなアルゴリズムSRMの問題について

好きなアルゴリズムとSRMの問題について - skyaozoraの日記 - TopCoder部

記念すべき初の競プロAdventCalender、そこに私が投稿した記事がこちらになります。当時はまだAtCoderは無く、Codeforcesも出来てから日が浅かったということで競プロ=TopCoderという時代でした。当時のTopCoderで個人的に印象深い問題をいくつか紹介しています。最近のAtCoderでもよく出るような問題かとか、難易度を比較してどんな感じかとかは正直よく分かりませんが、どれも割と面白い問題だと思いますので是非解法を考えてみて下さい。

 

2年目:競技プログラミングの練習法について

競技プログラミングの練習法について - skyaozoraの日記 - TopCoder部

今度は特定のアルゴリズムや問題という方向ではなく練習法について書いてみました。正直今見てもいい内容だなと自画自賛するというか、今だったら練習にはTopCoderよりAtCoderの問題を使うべきだとは思いますが、それ以外の内容に関しては今見てもかなり多くの人にとって役に立つのではないかと自負しています。ただ練習環境という点では、今はバチャコンがあったりとか色々本当に進化しましたねぇ。

あと練習法と直接関係はないですが、やっぱりオンサイトイベントに行って他の競プロerの方々と交流するのはめちゃくちゃモチベーションが上がります。最近はこんな情勢でオンサイトイベントは壊滅状態ですが、来年はまた開催されるようになるといいな…。

 

3年目:解法に衝撃を受けた問題たち

解法に衝撃を受けた問題たち - skyaozoraの日記 - TopCoder部

この年はネタが思いつかなかった上に卒論の提出直前で時間がなかったのでそうとう簡素な内容になってます。ただ2つ目のWindPassagesは本当に解法を知った時に衝撃でした(実際AOJ-ICPCでも☆が相当ついていますね)またこの記事を書いた約半年後のGCJ14R2のC問題がこのアプローチで解ける問題で、自分もここでまとめておいたお陰かすぐ解法が浮かんで解けましたし、他の参加者の方にも「この記事を読んでたお陰で解けました」と言ってもらえたりと、長さの割には役に立った記事なんじゃないかなと思っています。

 

4年目:競技プログラミングでたまに使われる名前の付いてないテクニックについて

競技プログラミングでたまに使われる名前の付いてないテクニックにつ - skyaozoraの日記 - TopCoder部

(これタイトルが長すぎた所為か途中で途切れちゃって修正できないんですよね…w)

4年目にして初めて特定のアルゴリズム・テクニックについて説明した記事になります。このテクニックは最初それを使う問題に出て全然何のことかわからなかったものの、他人のコードを読んだりしてるうちにようやく理解できて、自分でこうやって説明できるまでになった、ということで自分の中でもかなり印象深かったりします。ただこうやってsetのiteratorを使っていろいろやって…みたいなのは、最近はそれが本質みたいな問題はまず出なくて、あくまでもっと難しい問題の一部として出るって感じですよね。時代の流れを感じる。

 

5年目:もうひとつの箱根駅伝(AOJ2439箱根駅伝裏話)

もうひとつの箱根駅伝(AOJ2439箱根駅伝裏話) - skyaozoraの日記 - TopCoder部

これは自分の数少ない作問の中で唯一の良問である箱根駅伝の作問の裏話および別のアプローチでの解き方を紹介しています。ここに書いてある通り設定は見たまんまだし、解法は自分以外の人から降ってきてそれがかなり綺麗かつ応用範囲の広い解き方で、その結果今でも言及が行われるくらいの人気問題になって、我ながら凄く運がよかったなと思ってます。この解法のような考え方は順列関連のDP・数え上げで必要になる事は今でも相当ありそうですね。

 

6年目:競プロを始めての10年を振り返る

競技プログラミングを始めての10年間を振り返る(前編) - skyaozoraの日記 - TopCoder部

競技プログラミングを始めての10年を振り返る(後編) - skyaozoraの日記 - TopCoder部

(今並べてみて初めて前編と後編のタイトルが微妙に違うことに気が付きました)

自分は2006年にJOIの予選に初参加したので、そこから競プロを始めたと考えるとこの年にちょうど10年経ったことになります。なので競プロを始めてからこの時までの10年を、1年ずつその年にあったイベントや各種コンテストサイトでのレーティングの変化も交えつつ振り返ってみました。

今見てもさらに懐かしいです。最初は全然問題が解けなくてTopCoderの灰色から抜けられなくて、それを思うとよくここまでこれたなと。あと実力もそうですが、ここまで長い間競プロを好きでいられたこと自体が嬉しいです。というか今見たら競プロ始めてから14年なのでもう人生のほぼ半分は競プロをやってることになりますね(まぁ最近はやってると言えるかというとだいぶ怪しいですが…)

 

7年目:インラインDPというテクニックに関して

「インラインDP」というテクニックに関して - skyaozoraの日記 - TopCoder部

恐らく自分のAdventCalenderで一番多くの人に読まれたであろう記事。よく「実家DP」とか言われたりするのは中身を表してなさすぎだろと思ったので、テクニックをまとめるとともに妥当っぽい名前として「インラインDP」を提唱しました。後から「In-PlaceDP」の方がより表しているのではないかという意見が挙がってなるほどなと思いましたが、まぁどちらでも分かりやすい方をお使い下さい。

この概念も自分は最初はよく理解できて無くて、やっと理解できて暫くは「知ってることで他の人に差を付けられる」状態だったのですが、これもあっという間に「知らないと他の人に置いて行かれる」レベルの知識になってしまいましたね。

 

8年目:ConvexHullTrickを分割統治法で殴る

ConvexHullTrickを分割統治法で殴る - skyaozoraの日記 - TopCoder部

ConvexHullTrick(よくCHTと略されますね)は一時期それなりの頻度で出題されていました。それをちょっと別の角度から解いてみようという記事です。個人的にはCHTを素で書こうとするとかなりバグが怖いのでこっちの方針の方が好きなのですが、まぁここは個人差ですね。

 

9年目:数学とゲームが大好きな競プロ勢の皆様へ

数学とゲームが大好きな競プロ勢の皆様へ - skyaozoraの日記 - TopCoder部

さて、最後はほぼ競プロが関係ない記事です(笑)バックギャモンというボードゲームを数年前から始めたのですが、最近特にハマってきたので紹介しました。まぁ全く競プロに関係ないわけではなく、このバックギャモンではサイコロを振るゲームなので最善手(最も勝つ確率が高い手)を選ぶために常に確率計算が必要なので、そういう意味でも競プロ勢の皆さんも楽しめそうということで紹介させていただきました。

 

10年目:10年間の競プロAdventCalenderの記事を振り返る

当記事

 

という訳で10年間の記事を振り返ってまいりましたが(本当は9年しか振り返ってないのは秘密)、改めて自分が競プロをやって来た時間の長さを感じましたね。最近はコンテストからも離れがちですけど、それでも自分が競プロをやってきたことで得られた繋がりとか諸々は本当に大きいなとたびたび実感します。

競プロAdventCalender主催のmatsuさん、そしてかつて主催をされていたtanzakuさん本当にありがとうございます。来年も競プロ界隈がさらに盛り上がることを期待しつつ、そしてコロナが収まってまた各種オンサイトイベントが開かれるようになることを祈りつつ、よいお年を!