2023/7/29(土)

家族で寿司を食べた。うまかった。自分はどうやら貝が結構好きだということが分かった。


ABC312に出た。

A: やるだけ

B: やるだけだが添え字を間違えてデバッグに時間がかかってしまった。

C: 頭が死んでいて異常な時間を使ってしまった。X=Ai±1とBi±1について小さい方から順に試してしゃくとりをして通した。

D: 親の顔より見たDP。2分で通した。

E: ある等X面を考える。接する直方体の面をその上に描いたとき、最大で2重にしか重なり合わないことが分かる。従ってある等X面を考える際は20000回程度の処理しかしなくて良いし、全体でも2×10^6回で良い。これをXYZ全てでやれば6×10^6回以内で全て見れることが分かる。ということで全ての直方体の全ての面の全てのマスを調べても間に合うことが分かるので、あとは愚直にやればよい。

F: 缶切りが不要な缶、必要な缶、缶切りのそれぞれについて、Xiが小さいものを先に採用するメリットは皆無なので大きいものから貪欲に採用して良い。それぞれの採用数を全探索するとO(M^3)とかになってしまうので、缶切りの数を全探索することにする。

缶切りの採用数を固定すれば残り採用できる缶の総数と開けられる缶の数が確定するので、その範囲内で最大のスコアを求めればよい。

G: 全ての単純パスについて(N – パスの頂点数)の総和を求めれば良さそうというのが分かったので1≦i≦Nについて長さiの単純パスの総数を求められないかと思ったが無理だった。実はパスの頂点数の総和を直接求める考え方をするべきだったっぽい? この方針ではだめそう。

Categories: