
动态规划
文章平均质量分 74
Feliz..
一名大学牲qwq
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划:第二类斯特林数的应用(模板)
来源:牛客网。原创 2025-07-30 11:10:16 · 262 阅读 · 0 评论 -
5. 多重背包问题 II
有 NN 种物品和一个容量是 VV 的背包。第 ii 种物品最多有 sisi 件,每件体积是 vivi,价值是 wiwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。原创 2025-05-27 19:19:53 · 293 阅读 · 0 评论 -
P1854 花店橱窗布置
原题地址:P1854 花店橱窗布置 - 洛谷某花店现有 F 束花,每一束花的品种都不一样。至少有同样数量的花瓶,被按顺序摆成一行。花瓶的位置是固定的,从左到右按 1∼V 顺序编号,V 是花瓶的数目。花束可以移动,并且每束花用 1∼F 的整数标识。所有花束在放入花瓶时必须保持其标识数的顺序。例如,假设杜鹃花的标识数为 1,秋海棠的标识数为 2,康乃馨的标识数为 3,即杜鹃花必须放在秋海棠左边的花瓶中,秋海棠必须放在康乃馨左边的花瓶中。每个花瓶只能放一束花。每个花瓶的形状和颜色也不相同,因此,当各个花瓶中放入不原创 2025-05-26 19:52:03 · 831 阅读 · 0 评论 -
蓝桥杯真题 2195.费用报销
比如财务要求 K=7K=7 时, 若小明提交了一张 1 月 8 日的票据, 小明就不能 提交 1 月 2 日至 1 月 14 日之间的其他票据, 1 月 1 日及之前和 1 月 15 日及之 后的票据则可以提交。N+1 行: 每行 3 个整数 mi,di,vimi,di,vi, 第 i+1i+1 行表示第 ii 张票据时间 的月份 mimi 和日期 di,vidi,vi 表示该票据的面值。需要注意, 由于这些票据都是同一年的, 因此 12 月底的票据不会影响到 1 月初票据的提交。原创 2025-03-19 21:33:57 · 402 阅读 · 0 评论 -
1937. 扣分后的最大得分
在每一行的状态转移时,先正序遍历一次来算出j′≤j时,每个格子上的最大值。因为逆序遍历时j是越来越小的,所以可以求出第j格右边所有格的最大值,然后再与在正序遍历中求出的第j格左边所有格的最大值进行比较,进行状态转移,结果存到g[j]中。因为第f[i][j]个格子的最大分数要通过遍历第i-1行的每一个格子来确定,因此时间复杂度会很高最终的时间复杂度是O(mn2).所以该状态转移方程并不完善,要进行优化。蓝色格子是最优方案选中的格子,坐标分别为(0,1),(1,1)和(2,0)。原创 2025-01-18 15:20:59 · 698 阅读 · 0 评论 -
63. 不同路径 II
该题可知,grid[i][j]表示到达(i,j)该位置的路线有几种。所以可以初始化二维数组的第一行和第一列,使grid[i][0]和gride[0][j]都为1,只有一条路线,然后让其他位置的路线数就等于从它左边过来的路线加上从它上边过来的路线,即grid[i][j] = grid[i - 1][j] + grid[i][j - 1](0 < i < n,0 < j < m)。因为从一个位置出发一直向下走他的路径是不变的,只有从左边过来的,才是不同的路径,所以f[n]可以从同一列一直继承下去,反之也成立。原创 2024-12-14 17:10:34 · 799 阅读 · 0 评论 -
55. 跳跃游戏
对数组进行遍历,每一次遍历,都记录一下目前最远可以到达的位置。接着判断 该距离是否大于等于numsSize - 1的长度,是的话证明可以到达终点,返回true。遍历结束后的最远可以到达的位置还是小于numsSize - 1的话,就证明不能到达终点,返回false;刚开始我的思路是在目前的可以跳到的范围内寻找一个最大的值,然后再利用这个最大的值接着跳跃。就是要依据目前数组里数的大小进行跳跃,判断是否可以到达终点。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。原创 2024-12-12 21:26:00 · 230 阅读 · 0 评论 -
392.判断子序列(动态规划做法)
j的范围是0~25,表示相应的字符在目前的情况下第一次出现的位置。所以f[i][j]表示在遍历到字符串t中第i个字符时,字符j第一次出现的位置。动态规划是从第m-1行开始的,二维数组的初始化状态是第m行的一维数组的26个元素都为m(也可以设置为一个不小于m的数)。关于这道题是一道简单的判断子串问题,我刚开始做的时候很快就想到了利用双指针来进行解题,然后也成功的AC了。在进行动态规划时,将字符串t中第i个字符经过t[i] - 'a'操作,映射到f[i][j]中去,j = t[i] - 'a'。原创 2024-12-09 20:31:45 · 263 阅读 · 0 评论