动态规划
文章平均质量分 73
中二病没有蛀牙
这个作者很懒,什么都没留下…
展开
-
蓝桥杯——动态规划专题
集合划分原则:不重不漏,找最后一个不同点整数划分问题选择( 背包)区间dp区间dp循环的时候可以先循环区间的长度例题 密码脱落https://www.acwing.com/problem/content/1224/增加的就是原字符中中不是回文序列的字符的数量一. 状态表示l,r之间的回文子序列的长度二. 状态划分L,R都在集合里f[l+1,r-1] + 2L在集合里f[l,r-1]R在集合里f[l+1,r]L,R都不在集合里f[l+1,r-1]区间dp循环的时候可以原创 2021-06-03 16:52:28 · 538 阅读 · 0 评论 -
波动数列 dp
分析首先设第一个数为xxx,则第二个数为x+d1x+d_1x+d1,第三个数为x+d1+d2x+d_1+d_2x+d1+d2。d1,d2d_1,d_2d1,d2表示aaa或者−b−b−b,所以这个数列为:x,x+d1,x+d1+d2,x+d1+d2+d3x , x+d_1, x+d_1+d_2, x+d_1+d_2+d_3x,x+d1,x+d1+d2,x+d1+d2+d3就有:n∗x+(n−1)∗d1+(n−2)∗d2+(n−3)∗d3+…+dn−1=sn∗x+(n−1)∗d_1+原创 2021-05-25 22:18:28 · 171 阅读 · 0 评论 -
地宫取宝 dp
一、状态表示:dp[i][j][k][c]dp[i][j][k][c]dp[i][j][k][c]集合:从起点开始到达(i, j),且已选k个物品,物品最大价值是c的集合属性:方案数二、状态计算:集合的划分用val表示dp[i][j][k][c]dp[i][j][k][c]dp[i][j][k][c](1)不装第u件物品val=val+dp[i−1][j][k][c];//来自上方val = val + dp[i - 1][j][k][c];//来自上方val=val+dp[i−1][j原创 2021-05-20 21:45:01 · 111 阅读 · 0 评论 -
每日一题LeetCode 403 青蛙过河 dp 哈希
https://leetcode-cn.com/problems/frog-jump/const int maxn = 2005;class Solution { public: int f[maxn][maxn]; vector<int> p; unordered_map <int,int> hash; int dp(int i,int j) { if(f[i][j] != -1) retu原创 2021-05-02 19:19:34 · 140 阅读 · 0 评论 -
树形dp
总结一般来说树形dp在设状态转移方程时都可以用f[i][]f[i][]f[i][]表示i这颗子树怎么怎么样的最优解,实现时一般都是用子树更新父亲(即从下向上更新)。一般来说有两种情况:1.需要把所有子树的信息都掌握之后再更新子树的就需要把所有子树都算完了在更新父亲。2.像树上背包这样的问题就需要一个一个的更新,每次都用一个子树更新已经更新完的子树+父亲,最后就可以将这一部分的子树更新完了,再继续往上更新,最后根节点就是答案。第二种速度明显更快一点,但是第一种写法适合更多的情况,思维难度也要小不少。原创 2021-03-18 21:27:34 · 241 阅读 · 0 评论 -
cf教育场69 D. Yet Another Subarray Problem dp
题目https://codeforces.com/gym/297792/problem/D题意:规定子序列【l,r】的花费为求出这个数组的最大花费。最初的思路:一开始采用的方法是定义一个node保存区间,求出每一个长度为l的区间的相加最大值,以及对应的左右端点,并保存到add数组中。用尺取的方法更新每一个add【i】。最后对于add中的每一个长度求出它的花费,取最大值即可。这种思路是正确的,但是很遗憾尺取的时间开销太大了,直接超时。错误代码如下:#include <bits/stdc++.原创 2020-10-04 21:04:30 · 241 阅读 · 0 评论 -
贪吃的大嘴 多重背包 dp
7-4 贪吃的大嘴 (15分)有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的.所以她希望你能设计一个程序帮她决定要吃哪些小蛋糕.输入格式:先输入一行包含2个整数m、n,表示大嘴需要吃美味度和为m的小蛋糕,而小蛋糕一共有n种,下面输入n行,每行2个整数,第一个表示该种小蛋糕的美味度,第二个表示蛋糕店中该种小蛋糕的总数输出格式:输出一行包含一个整数表示大嘴最少需要原创 2020-10-03 15:46:01 · 278 阅读 · 1 评论 -
旅游 树形dp
题目:https://ac.nowcoder.com/acm/problem/15748Cwbc和XHRlyb生活在s市,这天他们打算一起出去旅游。旅行地图上有n个城市,它们之间通过n-1条道路联通。Cwbc和XHRlyb第一天会在s市住宿,并游览与它距离不超过1的所有城市,之后的每天会选择一个城市住宿,然后游览与它距离不超过1的所有城市。他们不想住在一个已经浏览过的城市,又想尽可能多的延长旅行时间。XHRlyb想知道她与Cwbc最多能度过多少天的时光呢?聪明的你在仔细阅读题目后,一定可以顺利的原创 2020-09-17 13:37:42 · 530 阅读 · 0 评论