Kyo_s_s Homepage
ICPC2022 参加記
競技プログラミング
ICPC
当日

あんまり寝れませんでした 1限があるせいです、休講にしてくれ

生協で野菜ジュースを購入して、過去問を少し通したりしながら1限を受けました つかれたー

3限までありました、は?

ICPC

Aを@fenger0126さんに任せ、Bを@ecto0310さんと一緒に読みます。実装重いけど書いてある通りにやれば間に合いそうということで僕がBを実装し、@ecto0310さんにほかの問題を眺めて解けそうなのを探してもらうことにします。

Bでめちゃくちゃバグらせながら実装し、結局35分かかりB問題をACします。Cを@ecto0310さんが解いているということなので、Dを読みます。

Dは数列を「必ず切らなくてはならない箇所」と「切ってはならない箇所」、「切っても切らなくてもよい箇所」の3つで分けることができ、必ず切らなくてはならない箇所で切ったときの切っても切らなくてもよい箇所を考えるとよいと考察します。必ず切らなくてはならない箇所と切ってはならない箇所は愚直に書いてもよさそうなので、デバッグしながら書きます。ここでだいぶ時間を使ってしまった気がします。そのあとはうまい感じでDPをするのですが、遷移が愚直なものしか思い浮かばず、とりあえずそれを書きます。実行したら多少時間はかかりますが動いているので投げたら無事ACしました。

Cが分からん~ということなので一緒に考えます。1, 4, 9,… って実は n2n^2じゃない?とか、aaxx個に分割して2乗した総和の最大と最小がわかればよいよね、とかを考え、最大はx1x-1個が11で残りの1つを残りにするべきで、最小は均等に分けるべきであるということがわかり実装します。@ecto0310さんの「分割する数を全探索する」の発想から、分割する数を全探索します。

なんかWAります。は~??とか言いながらコードを眺めていたら、テストケースのNoが2になっていることに気づきます。実はCの提出時に提出画面が固まり、sendを2回押してしまいました。どうやらそれでテストケース1は通り、次の2でWA判定をいただいたようです。提出しなおしたら無事通り、やらかした…になりました。

あとは通せなさそうなので順位表を眺めます。@ecto0310さんが開始前に順位表から選抜順を計算し、上位39チームに色を付けてくれるユーザースクリプトを書いてくれました。天才! ギリギリ通るんじゃない!?とか話していましたが、最後の10分くらいで選抜順40位に落ちてしまい、あーあになりました。

最終順位は54位、選抜順40位で逆ボーダーとなってしまいました。

来年は予選通過したいです。頑張ります! 追加で予選通過になりました、うおおおお!!!

© 2025 Kyo_s_s