![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划 -- 区间DP
Object_S
Java C++
展开
-
AW284 金字塔
题目地址易错点:题目给出的是欧拉序,也就是每个点的颜色不重复。因此,就可以利用相同颜色的点作为一个阶段进行dp. 因为需要模数,不能直接使用+=,即应当使用f[l][r]=(f[l][r]+dfs(l+1,k-1)*dfs(k,r)%mod)%mod. 划分点(k)可以从l开始,这是因为不合理的情况都被颜色剪枝了.#include<cstdio>#include&...原创 2019-08-05 20:06:02 · 119 阅读 · 0 评论 -
AW282 石子合并
题目地址易错点:要清楚动态规划的基本概念和应对方式. 原题有环,处理环的话需要断开接一倍.#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int MAXN=350;int f[MAXN][MAXN],sum[MAXN],a[MAX...原创 2019-08-05 16:56:09 · 93 阅读 · 0 评论 -
AW283 多边形
题目地址易错点:由于需要在一开始减少一条边且相邻输入数据在图上相邻,需要将输入的运算符复制一倍后向左平移一个单位. 乘法的状态转移需要注意负负得正,也就是说,最大值可以由两个最小值推导出来。因此,需要保存最小值,也就是使用f[l][r][0/1]分别保存最大/最小值。而最小值也有可能由多种情况推导出来,因此如果拿不准可以四种情况都尝试进行转移. 输出答案时不能直接输出f[1][n]...原创 2019-08-06 01:58:12 · 178 阅读 · 0 评论