2021/03/01

今日から再開する

Unfair Nim

atcoder.jp

黄diff

A[0]^A[1]==A[2]^...^A[N-1]となればいい。

2進法の下の位から、桁dpで移動する石の数を考えていく。

A[0]は上の位から借りているか、A[1]で繰り上がりが起きているか、の情報をdpに持たせる。

 

釘 (Nails)

atcoder.jp

JOI 難易度8

縦方向に見て、横にどれだけ伸びるかをまとめて求めた後、横方向に見て輪ゴムの中にあるかを求めた。

公式解説では斜めのimosをしたり、自分=max(自分, max(左上, 右上)-1)の性質を使ったりしていて、天才だった。

 

distribution - 冊子の配布 (Distribution)

atcoder.jp

JOI 難易度8

木の2乗dpみたいな感じでやるとO(n^2)になる。

 

通知

atcoder.jp

PAST O

解けなかった。想定解法を見て天才に思ったけど、PASTに出てるし、汎用性が高そうだから典型なのかな。友達が√M以上の人はT=1のクエリで愚直に通知を送らず、T=2のクエリのときに送られたかを見るようにする。そうすると、各クエリはO(√M)になり間に合う。

 

輪投げ

atcoder.jp

PAST O

DPを考えたけど無理だったので諦めた。

最小費用量で解ける。存在をすっかり忘れていた。思いついたとしても解けたかは微妙。正直、どんな問題を解けるのかがよく分かってない。......ライブラリを見ると「割り当て問題はこれ!らしい」と書いてあった。

 

typhoon - 台風 (Typhoon)

atcoder.jp

JOI 難易度9

イベントソートをした。台風の被害にあった数はBITとimosでいい感じにした。