Teek is Loading...
主题
一种对正整数拆分进行 DP 的转移方法:
考虑两种操作,放 0 和全部 +1,容易发现每一种拆分都可以通过这两种操作还原。
因此设 fi,j 表示拆分成 i 个数,和为 j 的拆分方案数,边界条件有 fi,0←[i≤m]。
接着转移:
问题是不能连续执行超过 m 次放 0 操作。考虑一次执行所有连续的放 0 操作,用辅助数组 gi,j 表示 fi,j 最后一次执行的操作是 +1,这样子放 0 时,fi,j←∑k=i−mi−1gk,j,前缀和优化,状态数 O(n2),转移 O(1),时空复杂度 O(n2)。