动态规划
文章平均质量分 72
_NeW__
这个作者很懒,什么都没留下…
展开
-
简单线性dp
因为q数组是严格上升的数组,所以用二分先在q数组从右往左找到第一个小于a[i]的值,此时的q[r+1]必定是大于a[i]的,所以更新一下q[r+1]=a[i], ( 因为a[i]是大于q[r],且小于q[r+1]的,又因为q数组存的是每一个长度的上升子序列尾部的最小值)。q数组表示:q[1]表示所有长度为1的最长上升子序列的尾部的最小值,同理,q[5]表示所有长度为5的最长上升子序列的尾部的最小值。(2).时间复杂度O(nlog(n))(1).时间复杂度O(n^2)原创 2022-09-27 18:11:52 · 119 阅读 · 0 评论 -
基础背包问题
2.选第 i 件物品(f [i-1] [j - v[i]] + w[i])2.选第 i 件物品(f [j - v[i]] + w[i])公式:f [i] [j] = max( f [i-1] [ j ] , f [i-1] [j - v[i]] + w[i])公式:f [j] = max( f [ j ] , f [j - v[i]] + w[i])两种情况选最大值:1.不选第i件物品( f [i-1] [ j ])和上述二维做法类似:1.不选第i件物品( f [ j ])附一个大佬的详细解释。原创 2022-09-24 15:22:12 · 1083 阅读 · 0 评论 -
计数问题(数位dp)
给定两个整数 aa 和 bb,求 aa 和 bb 之间的所有数字中 0∼90∼9 的出现次数。例如,a=1024,b=1032a=1024,b=1032,则 aa 和 bb 之间共有 99 个数如下:其中 出现 1010 次, 出现 1010 次, 出现 77 次, 出现 33 次等等…输入格式输入包含多组测试数据。每组测试数据占一行,包含两个整数 aa 和 bb。当读入一行为 时,表示输入终止,且该行不作处理。输出格式每组数据输出一个结果,每个结果占一行。每个结果包含十个用空格隔开的数字,第一个数字表原创 2022-07-14 15:51:53 · 168 阅读 · 0 评论