予鈴

アウトプットとメモ書きの中間みたいな記事がたくさん出ます。

ICPC 2020 国内予選参加記

はじめに

ICPC 国内予選に@sugar_sentan さんとチームを組んで参加しました。*1

結果は3完109位で、予選敗退です。

競技プログラミングを続ける上で、最も強い動機であったコンテストが終わってしまったこともあり、気持ちの整理はまだついていませんが、とりあえず記録として残して置こうと思います。

Day 0

コロナ禍での練習は大変だったので、需要があればそれに関するポエムを追記する予定です。

**追記します**

コンテスト当日

1時間ぐらい前に会場で準備を始める。Mac mini + 最強ディスプレイ*2で参加した。

5等分の花嫁の話題とかで盛り上がる。原作買わないとな〜〜と思いました。

コンテスト参加

コンテストがこどふぉる。最初はヘラヘラしてたが、隣の会場のチームがログインできているっぽくてめちゃくちゃ焦る。

電話をかける → WA

10分後にAC. 

A問題

読んでいない。sugarさんが爆速で通す。

B問題

問題文を読む。感染者が最初に現れたあとの辺から感染が広がることを見落としていて嘘を書く。サンプルが合わなくて初めて誤読に気づく。

メモ化しか思いつかなかったので書いてAC。O(N)で解けるらしいのであまり良くなかった。

C問題

・sugar さんから問題の概要を聞く。どうせ一つ変数決め打ちするんだろ〜と思ったけどダメっぽい

 N  = a * b のように、2つに分けて、 a = c * dとなるような c + d最小値を前計算で求めると嬉しいとなったが、駄目なケースでてきて考察が進まない。

・サンプルで与えられている Nの約数の個数が10^5ぐらいので、約数のみ考える方針に変える。よく考えると Nに使われている素数の数も多くないので、素数を並べてdpみたいなコード書く。最大ケースはかなり遅いがうまくいったので、とりあえず実行させながら高速化を考える + Dを考える

・半信半疑で提出するとin1に通る。そういえば-O3オプション使ってなかったな〜と思ってin2には-O3オプション付きで実行するとありえないスピードで終わる*3 + AC

・嘘をマシンパワーと小手先のテクニックで通すと…とても嬉しい

その他の問題

D : 制約が小さいのでbit DPっぽいけど何をDPするのか不明で、何もわかりませんでした。

F : 災害レベルが高い辺から追加していって、連結成分の数を管理したいな〜と思ったけど何もわかりませんでした。

最後に

冒頭にも述べましたが、今回が年齢的にも最後のICPCとなったため、学生競技プロerは引退となります。

 

 競技プログラミングの世界では決して強い方ではありませんでしたが、それなりの時間と多くのものを費やしてきたこと、大学院に進学してまで、計3回も出場したにも関わらず一度も予選を突破することができなかったという事実は、やはり悔しいです。

 

なんだかんだ、ICPC競技プログラミングの目標になっていたんだなぁと痛感しています。強くなりたかったなぁ(コナミ)

 

最後になりますが、競プロ部の活動に参加してくれた競プロ部のみなさん、

チーム名にハンドルネームを使うこと快諾してくださった @Yazatenさん、 チームのコーチを引き受けてくださった @Eulderna さん、本当にありがとうございました。

*1:3人で参加する予定でしたが、残念ながらメンバーの一人がcontestantとして認められず、ピンチヒッターとし代わりに研究室のメンバー(競プロ未経験)に登録してもらいました。

*2:研究室から借りた

*3:in2が軽いケースだったのか、それともO3オプションが最強だったのかは不明