dp
class Solution { public: /** * * @param n int整型 乐谱总音符数 * @param m int整型 重音符数 * @param k int整型 重音符之间至少的间隔 * @return long长整型 */ const long long mod = 1e9 + 7; long long a[1010][1010], f[1010]; long long solve_bangbang(int n, int m, int k) { if (m == 0) return 1; a[0][0] = 1; f[0] = 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) f[j] = (f[j] + a[max(i - k - 1, 0)][j]) % mod; for (int j = 1; j <= m; j++) a[i][j] = (a[i][j] + f[j - 1]) % mod; } long long ans = 0; for (int i = 1; i <= n; i++) ans = (ans + a[i][m]) % mod; return ans; } };
全部评论
(1) 回帖