kwm_t

kwm_tのメモ

ABC204

■A - Rock-paper-scissors
if (x == y)cout << x << endl;
else cout << 3 - x - y << endl;

■B - Nuts
書いてるとおりにやる
forとif

■C - Tour
制約が緩いのでbfsやdfsをn回やる

■D - Cooking
dp[i][j]:=i番目までの部分集合でjを作れるか

■E - Rush Hour 2
t+[d/(t+1)]が最小になるtを考える必要がある
到達したタイミングがそれより前なら、tまで待つ
過ぎていたら即出発
問題はそのtがいつなのか。
式を見るとほとんどax+b/xなので相加相乗平均を思い出せば良い。
sqrt(d)を周辺を調べる。
あとはダイクストラ

■F - Hanjo 2
制約が行列累乗と言っている。
ビット演算で状態を持って(i,j)と(j,k)をくっつけ(i,k)を作る。
但し、くっつける対象が1行しか無いと遷移が面倒なので
繰り返し似情報をする対象の初期状態は2行分で持つ。
行列の初期状態を作るのが少し面倒。