桁DPとは 桁ごとに分けて考える動的計画法です。 「1からNまでの整数について、条件を満たす数はいくつあるか?」「1からNまでの整数について、条件を満たす最大値は何か?」 というような問題で主に使えます。 Nについての制約が非常に大きくなるのが特徴で、O(logN)やO(1)でないと計算時間が間に合わない問題で使用されます。 桁DPの前に知っておくと良いこと 桁DPでは、「N以下の数を全て走査する」ことになりますが、以下のような場合分けを考慮しておくと分かりやすくなります。 例えば、N=63435 のような数であれば、 00000 ~ 59999 (\(6\cdot 10^4\) 通り)60000 ~ 62999 (\(3\cdot 10^3\) 通り)63000 ~ 63399 (\(4\cdot 10^2\) 通り)63400 ~ 63429 (\(3\cdot 10^1\) 通り)6
