kwm_t

kwm_tのメモ

ARC-C問題埋め(031~040)

■031:C - 積み木
BIT


■032:C - 仕事計画
dp後ろから決めていく


■033:C - データ構造
セグ木の更新とセグ木上の二分探索


■034:C - 約数かつ倍数
A-Bが小さいのでA+1,A+2,,,,,Bそれぞれを素因数分解した結果から
A+1,A+2,,,,,Bをかけ合わせた数の約数の個数を求めればいい


■035:C - アットコーダー王国の交通事情
O(K*N^2)が間に合うならそれで終わり
と思って制約を見ると間に合う設定なためお終い

ワーシャルフロイドで初期状態の最短距離を求めておいて
そこからクエリごとに更新を掛ける
dist[i][j]をdist[i][x]+dist[x][y]+dist[y][j](x,yが逆も同様)で更新できるなら更新


■036:C - 偶然ジェネレータ★★★
よくわかんない
状態数をうまく持つことで計算量を減らしているのはわかるが
減らす方法、減らした後の状態が自分にとって直感的でない。。


■037:C - 億マス計算
二部探索+upper_bound


■038:C - 茶碗と豆★★★
grundy
nimに苦手意識がある


■039:C - 幼稚園児高橋君★★★
難しい
linked listを自作する?
到達点から上下左右に次の候補点を張り、
次の候補点からの候補点を張り直すイメージ


■040:C - Z塗り
右上を起点に塗っていくイメージ。