Acwing-284-金字塔(区间DP)】的更多相关文章

金字塔 Description 虽然探索金字塔是极其老套的剧情,但是这一队 探险家还是到了某金字塔脚下.经过多年的研究,科 学家对这座金字塔的内部结构已经有所了解.首先, 金字塔由若干房间组成,房间之间连有通道.如果把 房间看做节点,通道看做边的话,整个金字塔呈现一 个有根树结构,节点的子树之间有序,金字塔有唯一 的一个入口通向树根.并且,每个房间的墙壁都涂有 若干种颜色的一种. 探险队员打算进一步了解金字塔的结构,为此,他们使用了一种特殊设计的机器人.这 种机器人会从入口进入金字塔,之后对金字…
CH Sol f[l][r]表示l到r这段区间对应的金字塔结构种数 发现是f[l][r]是可以由比它小的区间推出来的 比如已知f[l+1][k],f[k+1][r],不难想到f[l][r]+=f[l+1][k]*f[k+1][r],if(s[l+1]==s[k]&&s[k+1]==s[r]) 为什么是f[l+1][k]*f[k+1][r]呢,可以画图理解 如图,分为1,2两个部分.s[l],s[k+1],s[r]表示的是最上面的那个根结点;s[l+1],s[k]是左边子树的根结点 但是并不…
题目大意:给定一棵树,树上点有标记,给定一棵树的\(dfs\)序标记序列,求有多少种可能的子树形态.(子树之间有序) 这是一道区间计数类DP,涉及到树的\(dfs\)序. 这道题区间的划分点 \(k\) 的意义是:对于区间在[ l+1 , k-1 ]的序列,作为这棵树的第一棵子树.因为子树之间是有序的,所以第一棵树的形态的不同就意味着整棵树的形态的不同.另外,能决策的前提是子序列的两个端点值要相等. 代码如下 #include <bits/stdc++.h> using namespace s…
CH 5302 金字塔 \(solution:\) 很神奇的一道题目,当时看到还以为是一道字符串求回文子串的题目.但是数据范围很小,而且只知道回文串也不好做.但是我们观察可得,如果是深度搜索便利,那么它经过的子树应该是从左到右排列有序的,于是我们想到线性DP.然后我们发现似乎可以单独求某一段的便遍历方式然后合并,这就是区间DP的标志啊!于是我们考虑设 \(F[l][r]\) 表示从第 \(l\) 到第 \(r\) 个字符可以有的子树遍历方案(注意既然是子树遍历方案,那么 \(l\)字符和 $r…
链接: https://www.acwing.com/problem/content/284/ 题意: 设有N堆石子排成一排,其编号为1,2,3,-,N. 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆. 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同. 例如有4堆石子分别为 1 3 5 2, 我们可以先合并1.2堆,代价为4,得到4 5 2, 又合并 1,2堆,代价为…
在开始之前我要感谢y总,是他精彩的讲解才让我对区间DP有较深的认识. 简介 一般是线性结构上的对区间进行求解最值,计数的动态规划.大致思路是枚举断点,然后对断点两边求取最优解,然后进行合并从而得解. 原理 结合模板题(合并石子)讲述:https://www.acwing.com/problem/content/284/ 因为题目具有合并相邻物品的性质,所以在合并的过程中,必然会在最后一步出现两个物品合二为一的情况,而这两个物品则是分别由左侧的物品.右侧的物品合并而来的. 因此,我们的思路是枚举最…
区间dp作为线性dp的一种,顾名思义是以区间作为阶段进行dp的,使用它的左右端点描述每个维度,决策往往是从小状态向大状态转移中推得的.它跟st表等树状结构有着相似的原理---向下划分,向上递推. dp最终要求的就是推出状态转移方程,从板子中我们可以感受出来区间dp的关键在于如何找到小状态与大状态的关系. ;i<n;i++){//区间长度 ;l+i<=n;l++){//左端点 for(int h=l;h<l+i;h++)//枚举区间合并的分割点找到最优解 //转移方程 } } 这样基本的板…
原题链接:https://www.acwing.com/problem/content/285/ 题意简单来说就是:给你一个环,断掉一条边使其成为一个链,用这个链跑dp,求最大得分. 首先这不是一道板子题...跟板子区别如下: 1.多了一重循环,最开始要求断掉一条边,但是我们不知道要断掉哪一条边,因此需要循环一遍来比较. 2.计算方法有加法有乘法,而且数据有正数有负数.这两个条件任意一个都不足惧,但是如果凑在一起...就很微妙了. 何出此言?比如说,我们用 f [ i ] [ j ]来表示从i号…
4380: [POI2015]Myjnie Time Limit: 40 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 162  Solved: 82[Submit][Status][Discuss] Description 有n家洗车店从左往右排成一排,每家店都有一个正整数价格p[i].有m个人要来消费,第i个人会驶过第a[i]个开始一直到第b[i]个洗车店,且会选择这些店中最便宜的一个进行一次消费.但是如果这个最便宜的价格大于c[i],…
Blocks Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5252   Accepted: 2165 Description Some of you may have played a game called 'Blocks'. There are n blocks in a row, each box has a color. Here is an example: Gold, Silver, Silver, Sil…