atcoder.jp
を解きたいです。整数の分割の数え上げですね。問題の条件を満たす整数の分割に対し、ヤング図形の転置を考えると、以下の条件を満たす整数の分割の数え上げになります。
・
・
これの数え上げはdp[i][j] := として解くことができます。明らかな漸化式から累積和dpを導出することもできますが、である分割をとりをに書き換えることを考えると、であるようなものを余分に数えていて、逆にこれを除けばかつであるような分割を全て数えられているので、漸化式
dp[i][j]=dp[i-1][j-1]-dp[i-j][j-M-1]+dp[i-j][j]
を得ることができ、累積和なしでも解けます。(上記の漸化式は、noshiさんのユーザー解説やkanpurinさんのユーザー解説に載っているものと同じです)