随笔分类 - 动态规划-区间DP
摘要:题面:https://www.luogu.org/problemnew/show/P3147 cpp 本题设f[i][j]表示左端点为j,能合并出i这个数字的右端点的位置 由于位置为j的数和位置为f[i 1][j]的数可以合成一个i 1 那么位置为f[i 1][j]的数和位置为f[i 1][f[i
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P3205
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P4170 cpp 本题设f[i][j]为将i~j染色所花的最小染色次数 那么当i==j时,f[i][j]=1 当i!=j&&s[i]==s[j]时,可以看做是在第一次涂时多涂一格 那么就有f[i][j]=min(f[
阅读全文
摘要:```cpp 【题目描述】: 我们给出了“正则括号”序列的归纳定义: 空序列是一个正则括号序列, 如果S是一个正则括号序列,则(s)和[s]是正则括号序列, 如果A和B是正则括号序列,则AB是正则括号序列。 没有其他序列是正则括号序列。 例如,下列都是正则括号序列: (), [], (()), ()
阅读全文
摘要:```cpp 【题目描述】: 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。 如: []是匹配的 ([])[]是匹配的 ((]是不匹配的 ([)]是不匹配的 【输入描述】: 第一行输入一个正整数N,表示测试数据组数(Ni时f[i
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P1040 cpp 本题即一个在树上做的区间dp,只不过中间枚举的断点k即为当前dp到的树的根节点,然后将当前区间分为两段,即为树上的左子树和右子树,不过要注意这里的k可以取到端点值,即k的取值范围为[i,j]因为一棵
阅读全文
摘要:```cpp Description 在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个程序,计算出将N堆石子合并成一堆的最小得分。 Input 第一行为一个正整数N (2≤N≤100); 以
阅读全文
摘要:题面:https://www.luogu.org/problemnew/show/P1063 cpp 本题应先将数组拓宽一倍,这样就实现了环,之后枚举起始端点和区间长度,这样就能够算出结束端点,再利用转移方程f[l][r]=max(f[l][r],f[l][j]+f[j+1][r]+a[l] a[j
阅读全文

浙公网安备 33010602011771号