
DP动态规划
文章平均质量分 69
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
DP再入门(1)
早就学了DP,但是没完全学再不D一下,可能要出事了,所以专门刷点DP的题找找感觉。本文主要记录一些简单DP的思路和实现。原创 2022-10-22 08:51:30 · 238 阅读 · 0 评论 -
“蔚来杯“2022牛客暑期多校训练营2 K.[Link with Bracket Sequence I] 括号序列 DP
首先枚举插入的括号数量,原来的括号序列和左括号比右括号多的数量。,即左括号的数量大于右括号的数量,并且使用的原括号的数量。的括号序列(不保证合法性),求在此基础上生成的长度为。如果目前枚举到的括号为左括号,并且使用的原括号的数量。如果此时枚举到的是一个右括号,并且。、使用的原来的序列中的括号数量为。时,如果使用原序列括号的数目为。表示插入括号的数量为。如果使用的括号数量为。...原创 2022-07-24 15:47:09 · 289 阅读 · 0 评论 -
NamoCamp 每日一题 体育节 区间DP
|–>题目传送门<–|题目描述学生会正在为体育节的接力赛做准备。学生会由 n个成员组成,他们将在比赛中一个一个地跑,第 iii 个人的速度是 sisisi,第 i次接力会产生一个差异值 did_idi,它的值是前 iii个参与接力赛的人的速度最大值与最小值的差,也就是说,我们假设第iii个参与比赛的人的速度是 aia_iai,那么 di=max(a1,a2,...,ai)−min(a1,a2,...,ai)d_i =\max(a_1,a_2,...,a_i) - \min(a_1,a原创 2022-04-01 16:35:20 · 434 阅读 · 0 评论 -
括号序列【第十二届】【省赛】【B组】 DP
思路设dp[i][j]dp[i][j]dp[i][j]表示到第iii个括号,当左括号比右括号多jjj个的情况下,添加左括号的方案数。首先显然在一堆左括号里添加左括号对方案数是毫无贡献的,因此只有在一堆右括号中加左括号才会对方案产生贡献。则:s[i] == '('时,dp[i][j]=dp[i−1][j−1]dp[i][j] = dp[i - 1][j - 1]dp[i][j]=dp[i−1][j−1];s[i] == ')'时,dp[i][j]=dp[i−1][j+1]+dp[i−1][j]+dp[原创 2022-02-23 16:23:03 · 1358 阅读 · 1 评论 -
2022牛客寒假算法基础集训营1 K.冒险公社 DP
思路从题目中可以读到:给定的预测结果与i,i−1,i−2i,i-1,i-2i,i−1,i−2有关且前222点无法预测,如果要得到最多的绿岛数量,那么我们应该考虑枚举所有可能的构成序列。定义dp[i][j][k]dp[i][j][k]dp[i][j][k]表示考虑到第iii个字符,当前结尾的三个字符i,i−1,i−2i,i-1,i-2i,i−1,i−2分别存放了j,k,l(∈{1,2,3})j,k,l(\in\{1,2,3\})j,k,l(∈{1,2,3})时的最大绿岛数,可以得到转移方程:(注意要初始化原创 2022-01-25 17:55:44 · 348 阅读 · 0 评论 -
The least round way 思维+DP
题目大意给定一个n×nn \times nn×n的矩阵,要求找到一条路径,使得路径上的矩阵元素乘积中包含的000的数量最少。思路考虑DPDPDP求解。要使乘积中的000最少,首先考虑如何产生000,显然是包含有因子222和555的元素,末尾000的个数取决于因子中222和555的个数较少的值。那么我们只需要预处理除每个元素因子222的个数和因子555的个数,然后统计路径上可得到的最少因子222和最少因子555的个数,统计的时候,同时对路径进行标记。然后取最小值即可。额外需要注意路径上如果有000原创 2022-01-20 18:37:03 · 517 阅读 · 1 评论 -
2020 China Collegiate Programming Contest Qinhuangdao Site K.Kingdom‘s Power树上贪心
Problem Analysis题目要求求除走遍所有叶子节点的最小步数。首先考虑树上贪心的做法。对于同一根节点而言,我们优先走到达叶节点的最短的链,因为我们期望经过最长链的次数最小,也就是最后走最长链条。所以我们需要对访问顺序进行排序;由于所有链条都是按照上述规则进行排序,因此对于某个点而言,在贪心取路径的过程中,对于到达的iii位置,仅会在i+1i+1i+1次访问时用到。因为后续的操作回溯到的点时距离根节点更近的父亲节点。我们可以O(n)O(n)O(n)求出树上所有叶子节点最大深度,同时在求深原创 2021-11-25 22:30:37 · 454 阅读 · 0 评论 -
The 2020 ICPC Asia Macau Regional Contest G.Game on Sequence 博弈+思维
Problem Analysis题目大意:给定一个长度为nnn的非负整数序列AAA,游戏规则为:初始状态有一个指针指向某个序列元素A[i]A[i]A[i],你可以从iii下标后面的元素中选择一个一个二进制位与其相差不超过111位的元素,并将指针移动到该元素上。AliceAliceAlice和GrammyGrammyGrammy轮流进行游戏,不能操作的人视为输掉游戏。对于输入而言,有两种操作,当输入1 k时,在序列尾部添加一个元素kkk。当输入2 k时,表示从kkk开始游戏。对于所有的操作,输出该次游戏的原创 2021-11-09 09:20:01 · 1205 阅读 · 0 评论 -
2021 ICPC 江西省大学生程序设计竞赛(正式赛)F.Four Column Hanoi Tower 线性递推、高精度
题目大意:经典汉诺塔问题的变形,现在给定四根柱子的汉诺塔,要求回答给定的初始塔高度,移动到到一根柱子所需要的操作次数。思路分析:首先分析三根柱子的汉诺塔:将第i−1i - 1i−1个盘子从aaa柱通过三根柱子移动到bbb柱,然后将最大的移动到ccc柱,最后又将i−1i - 1i−1个盘子通过三根柱子移动到ccc柱。在这个过程中的操作次数为dp[i]=2×dp[i−1]+1dp[i] = 2 \times dp[i - 1] + 1dp[i]=2×dp[i−1]+1。那么我们继续分析四根柱子的汉诺塔:1原创 2021-11-02 11:34:33 · 1784 阅读 · 2 评论 -
2021辽宁省大学生程序设计竞赛(正式赛)阿强的路 Floyd最短路、思维
题目分析:题目给定一个无向图,要求回答对于给定两点A,BA,BA,B之间路径最大点权×\times×路径最大边权的最小值很显然是一个多源路径问题,首先要维护边集数组,由于需要计算一个最大点权,一个最大边权,两个最大不好同时处理,因此将点集数组按照权值进行排序,这样可以保证求到“最大值的最小值”,即遍历到大于当前答案的第一个值立即更新掉。用一个dpdpdp数组表示dp[i][j]dp[i][j]dp[i][j]为"最小的路径最大点权乘以路径最大边权",并将其初始化为uvuvuv间权值×\times×u、v原创 2021-10-30 20:58:19 · 515 阅读 · 0 评论 -
2021 ICPC 江西省大学生程序设计竞赛 A.Mio visits ACGN Exhibition DP+降维优化
题目大意:给定一个n×mn \times mn×m的0−10-10−1矩阵,要求从左上角(1,1)(1,1)(1,1)走到右下角(n,m)(n, m)(n,m),路径上至少经过ppp个000,qqq个111。求这样的路径有多少条。思路分析:DPDPDP思路是队友给的,贴一个队友的博客:2021 ICPC 江西省 A. Mio visits ACGN Exhibition(DP,大离谱,经验分享)_yezzz的博客-优快云博客首先按照DPDPDP的基本思路,用dp[i][j][x][y]dp[i][j]原创 2021-10-28 15:03:30 · 857 阅读 · 1 评论