鴨井遼 競技プログラミング

競技プログラミングについての日記(更新は終了しています)

Codeforces Round #543 (Div. 2)

codeforces.com

 

まず、コンテスト中にunratedが発表されたので悲しい気持ちになった。しかし結果としてC問題までしか解けなかったので、レートの変動はほぼなかったと思う。いずれにせよ悲しい。

 

A問題は出場できない生徒の数だけ学校を作る。12分。

B問題は O(n^ 3)が通るので全探索する。つまり、1組以上は存在する和( n^ 2通り)について、何組存在するか数える( O(n))。18分。ここまでは問題なかった。もっと早く解けるべきだとは思うが。

C問題は凄くバグを出しそうで怖いけれど、特に考えることはなくてプログラミングの問題という感じだった。 150 \cdot nkが通るので、全てのtについてk個のプロセスのそれぞれが何番目のsubmissionの何番目の何番目のテストを解いているかを配列に記録すれば良い。

実質50分で解けていたのに(それでも遅すぎるけれど)、初期化をミスしていて2WAだして70分もかかった。本当に良くない。毎度おなじようなミスをしないで欲しい。

D問題は残り20分しかなかったから問題文しか読んでいないが、解法としては尺取り法で全てのbを含む区間を列挙して、全てについて取り除く花の数を数えれば良いはず。始点が同じものについては最も短いものを保持するとすれば最大でも 5\times 10^ 5組しかなくて、取り除く数はそれぞれO(1)で求まる。

 

Cが50分で解けていたとしても残り時間が40分なので、僕の実装速度だとDが解けていたかは微妙なところだと思う。実装速度をあげたいですね・・・。