ICPC2019国内予選参加記

こんにちは、yapattaです。

先日、ICPC2019(競技プログラミングのチーム戦の大会)国内予選に参加してきた。

チーム名choKOdai、ABCの3完、最終順位85位でした。学内3/20位でホスト校枠で、アジア大会に参加できそう。いやあ、本当に良かった...

僅差で同大学のチームに勝てたので、本当に良かった...

f:id:ziroppe:20190713114829j:plain

ICPC2019国内予選の順位表

 

今回の記事では、本番にどうやったかと、本番までの練習で何をやったか書いてきたい。

 

1) 本番について

なんかICPCのルールが改訂されて、チームごとにキーボードが1台しか使えなくなった。多数決でJISキーボードを使いコーディングするわけである。しかし、僕は普段USしか使わないため、JISを使うとコーディングが遅くなる。よって、今回はほぼコーディングをしていない。

 

まず、蜘蛛さんに印刷してもらっているうちに、残り僕ら2人がA,B問題を見ていた。A問題はただ生徒ごとに個々の点数を合計してソートして 最大値を求めるだけだ。速攻で書いて、次にBを見る。Bはマンハッタン距離だとRoyくんがすぐにわかったため、keyをある文字、valueを文字のx,y座標を記録したpairを持つmapを作り、距離を求めるという実装を書いてもらい終了。A、Bをとき終わった時点で、20分経っていなくて安心した。

C問題を蜘蛛さんとRoyくんに考えてもらって、僕はD~Fあたりの調査をすることに。D問題の内容を伝えるときに誤読してしまい、誤読したコードをRoyくんに書かせてしまった。これは本当に反省。こんなことしている間に、蜘蛛さんがCのコードを書ききった。しかし、テストケースが上手く動かない。なんとか例外処理を修正してCを通した。とりあえず2時間以内に3完したので精神的に安心。E問題はやるだけっぽそうだけど、通している人がDの方が多い印象があり、結局Dを考えていた。D問題はAtCoderの花壇の問題に帰着できるきがするという話をチームメイトとしていたが、mを超える場合に関してなど、具体的な実装が思いつかず時間も残り30分のためEを見ることに。そして、僕がEをとりあえず書いている間にコンテスト終了。(もちろん書ききれなかった)

 

2) 練習について

本番2週間前から、週末集まって3時間計って模擬国内を解いていた。(JAG2019とJAG2018)

平日の授業後や空きコマに週2日ぐらい1時間以内でABCセット(300点以下の問題)を三問速解きする練習をRoyくんとやっていた。今回のAB問題については速解きの練習が本番に生きた気がする。

あと週一回のサークルで時間内に解けなかったとしても、なるべくすべての問題をAcceptするよう努めていた。(400点問題は解くのに時間がかかっても、非常に勉強になった)

あとは、個人でAOJ ICPCを埋めるとか、AtCoderに参加するとかしていた。

個人的に、脳筋ゴリゴリの実装問題を練習していた。

ちなみに、ICPC前のAtCoderで2連続レートが落ちていたけど気にしないようにしていた...

 

今回のコンテストでは仲間に頼った部分が多かったので、アジア大会では、是非仲間を引っ張れるように頑張りたいな。多分最下位通過でもあるので、夏休み使って是非精進したいな。