![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
区间DP
文章平均质量分 52
做一只大熊猫
让优秀成为一种习惯!
展开
-
Generating Palindromes LightOJ - 1033(区间 dp)
题目链接题意给一个字符串,问最少要插入几个字符,让这个字符串变成回文串。思路很经典的区间 dp,设 dp [i][j] 表示将 [i, j] 这个区间变成回文串所需要的最短插入字符次数,状态转移如下:代码#include <bits/stdc++.h>using namespace std;#define db double#define ll long long#define sc scanf#define pr printf#define fi f原创 2021-05-31 08:23:06 · 81 阅读 · 0 评论 -
Palindrome Partitioning LightOJ - 1044(区间 dp)
题目传送门题意给我们一个字符串 S,问可以将 S 分割成几个子区间,要求分割出的每个子区间的都是回文串,输出最小分割成的区间的数量。思路这题明显是区间 dp,设出来状态转移方程:dp [i][j] 表示将 [i, j] 这个区间分割成的最少会问区间的数量。考虑状态转移:[i, j] 这个区间的最优值来自它的子区间组成,于是我们枚举 [i, j] 区间的分割点,去转移:当 S [i] == s [j] 的时候 我们把 dp [i][j] 初始化为 dp [i+1][j -1], 否则初始化原创 2021-05-30 12:20:52 · 116 阅读 · 0 评论 -
1580:加分二叉树(思维+区间DP)
【题目描述】 原题来自: NOIP 2003 设一个 n 个节点的二叉树 tree 的中序遍历为 (1,2, 3, …,n), 其中数字 1,2, 3,.,n 为节点编号。每个节点都有一个分数 (均为正整数) , 记第 i 个节点的分数为 di ,tree 及它的每个子树都有一个加分,任一棵子树 subtree (也包含 tree 本身) 的加分计算方法如下:记 subtree 的左子树加分为 1, 右子树加分为 r, subtree 的根的分数为 a, 则 subtree 的加分为: 1xrta.原创 2020-10-11 12:09:05 · 403 阅读 · 2 评论