动态规划习题
动态规划专项练习
qq_34026804
这个作者很懒,什么都没留下…
展开
-
美丽序列(dp)
美丽序列 思路: f(i,j,L,k)表示处理到 i 个数且上个数为j 在递减序列中为序为L 当前和为k的美丽序列数量 #include<iostream> #include<algorithm> using namespace std; const int N = 45,M=1e9+7; int a[N]; int f[N][N][3][1650]; int main() { int n; cin >> n; for (int i = 1; i &l...原创 2022-01-06 00:02:44 · 219 阅读 · 0 评论 -
牛客 删括号
删括号 思路: 在思考这题时发现此题和编辑距离题目十分相似。 编辑距离 对于本题题目的状态设置看完题解后感觉十分巧妙,在原有二维基础上加了个记录删除’(‘括号数来进行状态转移。 状态设置:布尔类型(bool)f(i,j,k)表示s串删除进行删除操作后,可以与t串匹配,删除的左括号与右括号之差为k。 也就说明当k为0时删除的是合法序列。 那么状态如何转移呢: 不难发现在dp[i][j][k]合法的情况下,如果此时 s[i]=t[i]且k=0 那么说明dp[i+1][j+1][0] 也是合法的。 而后对于...原创 2021-12-30 00:16:05 · 486 阅读 · 0 评论 -
被3整除的子序列
被3整除的子序列 思路 首先研究下此题目的状态空间,比如132这个集合{1,3,2,12,13,23,132}在这个状态集合中寻找能被3整除的数量(即各个数相加和能被3整除),那么如何设计存储这个状态空间以及状态如何转移呢,比如现在字符串为13的状态空间为{1,3,13},后面添加个字符串即在此状态空间基础上每个状态都加一个后面的字符串,最后加上那个字符串本身。那么这样可构思出如何存储状态空间。 f[ i ] [ j ]:表示进行到第i个字符串时,%3为j数的个数 那么f[i][j]的数可由f[i-1]..原创 2021-12-28 11:37:57 · 447 阅读 · 0 评论