りにゅうしょく

競技プログラミング 日常

Codeforces Round #693 (Div. 3) DETANOJA...

システス落ちしなければA,B,C,Dの4完でレートは上がりそう!
Eも時間内に通したかったけど無限にバグらせてしまった……。

A. Cards for Friends

W×Hを何回2で割れるか数えて、その数えた2^{cnt}Nより大きければYES。

B. Fair Division

重さ1の飴も重さ2の飴も偶数個あったらYES。重さ1の飴が0個以上かつ偶数個以上あって、重さ2の飴が奇数個の場合もYES。それ以外はNO。

C. Long Jumps

前からdpで通る。最初にdp [i] = A [i] としてから、i+A_i≤Nのとき、dp [i+A_i] = max( dp [i+A_i], A [i+A[i]] + dp [i])でたぶんいけるはず……(ガチャガチャしてたらプレテストが通った)

D. Even-Odd Game

降順にソートして前から順にAlice→Bob→Alice……と取っていくのがお互いにとって最適ぽい?何でそうなるのか分からないけどとりあえず反例が思いつかなかったので投げたら通る(完)

E. Correct Placement

オンオン……。向きはどっちでもいいのでH>Wとして、indexを持っておいてHで昇順ソートして前から順番に見る。今見ているものよりHが小さいもののWとindexはmapに、Hが同じものはstackに入れておく。1つ前よりHが大きくなったらstackの中身は全部mapに移す。mapの中で一番Wが小さいもののindexが答えになる。

強くなりたいナーーー ポヤシミ……