区间DP的主要思想就是先在小区间得到最优解,然后再利用小区间的最优解合并求大区间的最优解。 动态转移方程一般为$dp[i][j]=opt(dp[i][k]+dp[k+1][j]+cost[i][j])$ 经典例题:取石子问题很容易根据动态转移方程得出$O(n^3)$的解法,但是也可以通过四边形不等式 ...
分类:
其他好文 时间:
2020-01-28 23:05:43
阅读次数:
74
//dp[i][j]表示第i次从左边取,第j次从右边取的价值,所以我们可以得到状态方程 //dp[i][j]=max(dp[i-1][j]+(i+j)*a[i],dp[i][j-1]+(i+j)*a[n-j+1]) (i > 0 && j > 0 ) //dp[i][0]=dp[i-1][0]+i* ...
分类:
其他好文 时间:
2020-01-28 19:34:37
阅读次数:
68
"Question" 题目大意不说了。 区间$dp$ 设计$dp[i][j][k]$表示区间$[i,j]$能不能由字符$k$变化得到 那么有一个状态转移方程是: $$dp[i][j][lay[l][0]]=dp[i][mid][lay[l][1]] 0,dp[mid+1][j][lay[l][2]] ...
分类:
其他好文 时间:
2020-01-20 18:49:21
阅读次数:
59
01.02 数学一 T1因为不会exlucas只拿了80 T2失智没想到异或FWT,后面的倍增求鬼畜数列前缀和了。 T3是个特别神的期望?的确是枚举最后一个拔掉的位置,然后区间dp 如何让区间dp方便地统计答案同时转移?当然是弄出一个优秀的状态定义了 (也就是只要和出题人想到一块就AC否则暴力滚粗) ...
分类:
其他好文 时间:
2020-01-06 22:50:00
阅读次数:
94
题解:由于要求的是字串,不是子序列,区间dp在这里不合适。考虑定义一个dp[i]表示以是s[i]为结尾的字串最长有效长度。分类讨论一下,当s[i]为"("的时候,dp[i] =0; 当s[i]为”)“的时候,考虑前一位,当s[i-1] == '('的时候 dp[i] = 2 + dp[i-2]; 当 ...
分类:
其他好文 时间:
2020-01-02 20:58:44
阅读次数:
104
需补内容 以下内容按照重要性排序: 1. 基础部分(需要专门学习,需整理配套模板): 1. DP 1. 背包问题 2. 数位DP 3. 区间DP 2. 图论 1. 二分图 2. 最大团 3. 连通性(tarjan) 3. 数据结构 1. 树直径,重心等基本参数。 2. FHQ Treap, 替罪羊树 ...
分类:
其他好文 时间:
2020-01-01 09:27:29
阅读次数:
98
"戳这里" 先看一下题意: ? 给你一个 n 长度的木板,刚开始是没有颜色的,现在你需要用最少的涂色次数,让这个木板的颜色变成给定的目标颜色 解析 1. 读懂题意,发现这是一个求处理一个区间的最小操作数的题目,这时候就要考虑能不能用区间DP处理这个题目,一般来说,区间DP的时间复杂度为 $n^3$或 ...
分类:
其他好文 时间:
2019-12-16 17:27:37
阅读次数:
67
的确挺神奇的一道题,跟lyc讨论了一会才想清楚正确性。 用dp[x][y]表示完成[x,y]这些舞会至少需要多少衣服。注意这里dp的定义很明确,就是只完成[x,y],之前不需要穿衣服,之后也不需要穿衣服。 那么对应的,答案应该就是dp[1][n]。 我们考虑转移,这道题中,唯一能优化的地方,无非就是 ...
分类:
其他好文 时间:
2019-12-08 22:38:41
阅读次数:
74
HDU 3516 Tree Construction 好久没更博客了 CSP 2019 凉凉。。 这个题看起来就很像区间dp,可以写出 $ dp[i][j] = max\{dp[i][k]+dp[k+1][r]+x_{k+1} x_i+y_k y_r\} $ 就是考虑 $ [i,j] $ 这个区间, ...
分类:
其他好文 时间:
2019-12-07 16:36:09
阅读次数:
100