動的計画法に関するカテゴリーです。

AtCoder, 動的計画法

問題方針

\( d(i, j, k) \) を金貨が \( i \) 枚、銀貨が \( j\) 枚、銅貨が \( k \) 枚であるときの確率とします。初期値は、\( d(A, B, C) = 1 \) で、その他は \( 0 \) で ...

AtCoder, 桁DP

問題方針

桁 DP を用いて考えます。\( d(i, j, k) \) を \( i \) 桁目まで調べた時、\( 1 \) の数が \( j \) であり、未満フラグが \( k \) であるものの数とします。\( k = 0 \) ...

AtCoder, 動的計画法, 累積和

問題方針

まず、壁がない場合を考えます。

\( d(i, j) \) をマス \( (1, 1)\) から マス \( (i, j) \) への移動方法の数とします。\( d(i, j) \) は、\( n = \min ( ...

AtCoder, bitDP, グラフ理論

問題方針

いわゆる巡回セールスマン問題というやつです。

\( g(i, j)\) を都市 \( i \) から都市 \( j \) に移動するときのコストとします。\( d(i, j) \) を訪れた都市の状態 \( i \ ...

AtCoder, bitDP

問題方針

\( i \) から \( i + 1 \) 分が視聴できる状態をビットを用いて、\( i \) ビット目が \( 1 \) であるとします。そうでないときは \( 0 \) です。

与えられた文字列を、\( a_ ...

Codeforces, 動的計画法, 累積和

問題

数字列 \( n \) の部分列を取り除いて得られる整数の総和と求めます。

方針部分列について

自然数 \( l \) を \( l = |n| \) とします。ここで、総和に対する \( i \) 文字目の整数 \( ...

yukicoder, 動的計画法

問題方針後ろから考える

マス \( x \) にいるとき、ゲームオーバーマスのマスペアが \(( x + 1, x + 6) \) または \( (x + 2, x + 5) \) または \( ( x + 3, x + 4) \) に ...

Codeforces, 動的計画法

問題方針

泥棒 \( i \) の座標は \(( a_i, b_i) \) であり、サーチライト \( j \) の座標は \( (c_j, d_j) \) です。 泥棒の座標を \( ( a_i + t, b_i) \) と移動したと ...

AtCoder, セグメント木, 動的計画法

問題方針

最長増加部分列を解くような感じで解けるみたいですが、あまり理解できませんでした。

まず初めに、\( A_i \leftarrow A_i + K \) と再定義します。ここで、\( d(i) \) を末尾が \( ...

yukicoder, 動的計画法

問題方針

動的計画法を使って考えます。\( A_i \) の平均が \( K \) 以上ということは、\( A_i – K \) の総和が \( 0 \) 以上ということなので、\( d(i, j) \) を \( i \) ...