いちごくん

競技プログラミングの話をしたり

ICPC2023 アジア地区予選参加記(itigo)

ICPC2023 アジア地区予選参加記

チームtatitsuとしてpitsuさん、tardigradeくんと共にアジア地区予選に参加しました。僕とpitsuさんは最初で最後のアジアでした。ワクワク

 

コンテスト以外の話

11/24(金)に横浜入り、空港暑すぎ(札幌が寒すぎる?)

11/24(金)の夜はHCPCのOB達と中華食べ放題した。まわるテーブル楽しい

 

宿泊先、3泊4日で8500(税込)の最高の宿。どこでも寝れる僕はあまり気にならなかった(なんなら居心地良かった)けど気になる人は気になりそう。普通に近くの宿泊客のいびきは聞こえる。

slackで「ここ会場激近で激安!!」みたいなこと言ったらpitsuさんにパクられた。

ただ最大の問題点として、音出せないので当日朝にアラームがかけれない。幸いpitsuさんも泊まってたので互いに部屋番号を共有した。二人の寝坊率をp,qとするとp+q-pqだった出場失敗率をpqに抑えることに成功。偉い!(当日は普通に二人とも起きた)

 

コンテストの戦略

うちのチームは次の役割分担

itigo : ひたすら解法を考える、どっちかというとヒラメキ系

pitsu : 実装マシーン。便利

tardigrade : 考察も実装もバグとりも臨機応変にしてくれる。便利

また、チーム戦の戦略として次のようなことをしていた

  • バグったら考えるより先にプリントしてパソコンから離れる(超おすすめ。プリントはほぼコスト0。ボランティアにいっぱい労働をさせよう)
  • 基本問題概要をチームメイトに伝えることはしないで、各自読む(誤解を生むため。最近のICPCの問題はわかりやすいので口で説明するより読んだ方が正確だし説明側のリソースも裂かない)

コンテスト本番

開始と同時に僕がPCの準備、pitsuさんがA、tardigrade君がBを読む。

僕が準備終わると同時にpitsuさんがAの実装を開始

0:12 A問題 AC

僕は初手Cを読む。実はこの問題、ほぼ同じものを作問で考えたことがあってむず過ぎて諦めたことがある。具体的には下記の問題の「同じ数字を何個でも書いていい時にYESになるものの数え上げ」を考えてた。

atcoder.jp

チームメイトに「この問題知ってて、不可能です」と伝える。

tardigrade君がBで困ってそうだったのでBに参戦。良さげな解法が思いついたのでtardigrade君に伝えて納得してもらう。納得させたので実装をmarunageした()

僕はF問題考察へ

0:44 B問題 AC

Fが思いついていたので僕が実装をする。

できたコードを実行するとPCがクラッシュする。

復帰してもう一回実行すると実行するとPCがクラッシュする。

もう一回実行すると実行するとPCがクラッシュする。

Judgeを呼んで状況説明をする(英会話力低過ぎてかなりコミュニケーションに困った)

どうやらメモリーが壊れてるみたいなことを言われ、よく確認してみると

./a.out < output.txtとしていた(output.txtを入力にしていた)

これやるとPCクラッシュするのか...

 

./a.out > output.txtにして実行するとサンプルが合わない。

よく見ると誤読してることが判明。(英語力さん...)もう一回考察して、分かったので実装した。

1:14 F問題 AC

なんかpitsuさんとtardigrade君がKが解けそうみたいなことを言ってる。僕はDを読む。なんか区間DP的な感じで解けそう。Kが詰まってる間にPCを借りて実装したりしてたが、うまくいかなかった。実装力が足りない...

そうこうしてる間になんかチームメイトが勝手にKを通してた

2:20 K問題 AC

pitsuさんにDの概要だけ伝えてmarunageした()

僕はtardigrade君とEをやる。tardigrade君が「これbitDPでO(m2^n)だけど、流石に遅すぎるよね」みたいなことを言っていたので考えてみると、mが大きいケースは巡回順序の制限も重くなるので実際は2^nも無さそうみたいな話になり、「ワンちゃんこれで行けるだろ!!」と強行。

 

ここでpitsuさんのDがWAになる。tardigrade君がEを実装しつつ、僕とpitsuさんがDのバグ取り。

その間にtardigrade君のEがTLEする。

~ここからDがWA、EがTLEが続く~

Dの誤読が判明。(英語力さん...)直して投げる

3:21 D問題 AC

tardigrade君がEの細かい高速化を頑張る

3:25 E問題 AC(尚非想定解)

僕がGをやる。pitsuさんとtardigrade君がHをやる。

....

....

~何も進捗が生まれない~

コンテスト終了 6完 28位

感想

英語力低過ぎ、実装力も低過ぎ

ただチームで協力して戦うのはかなり楽しかった。このコンテストもっと競プロ強い自分で参加したかったな...