![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划 区间dp
_pkm_
love coding
展开
-
HDU 5900 QSC and Master (区间dp,记忆化搜索)
题目链接题意:类似消消乐,给出n组键值对,每次选择键的gcd不是1的相邻的2个合并,然后可以获得这2个键对应的值和,消去的部分后,剩下的可以看做是相邻的。比如3 2 2 3消去2 2 那么3 3就是相邻的区间dp了,因为最终值和每次抉择是有关的,贪心是不可以的, 容易想到的是对于一个区间[i,j],枚举每一次选择的位置k,然后计算出所有的可能再取最大值,当然直接暴力,时间是不够的,原因在于计算过原创 2016-09-20 18:54:55 · 396 阅读 · 0 评论 -
HDU 4283 You Are the One (区间DP,记忆化搜索)
题目链接题目的意思是:有一个队列,每个人有一个愤怒值D,如果他是第K个上场,不开心指数就为(K-1)*D。但是边上有一个小黑屋(栈),可以一定程度上调整上场程序 学习一下区间dp的问题 dp[i][j]: 表示区间[i,j]的不开心值最小。 当前只考虑这一段区间里面的人的话,也就是这j-i+1个人出栈的名次是[1,j-i+1], 那么假设第i个人是第k个出栈的话,那么[i+1,i+k-1]的原创 2016-09-20 00:47:04 · 388 阅读 · 0 评论 -
HDU 4622 Reincarnation(字符串hash,hashMap,区间dp)
题目链接 题意:给出一个字符串,问区间的不同子串有几个 首先可以直接预处理出所有长度的字串的hash值,然后用区间dp维护。 区间dp的时候需要记录同一长度下的上一个相同hash值出现的位置,使用STL 的map会超时,所以需要手动写个hashMap,也就是hash加冲突处理。记录相同的hash上一次的位置//#include<bits/stdc++.h>#include<iostream>原创 2016-10-25 17:18:26 · 486 阅读 · 0 评论 -
HDU 1421 搬寝室 (dp)
题目链接 题意:给出n个数,每次选择出来k对(x,y),代价是(x-y)的平方,然后问代价最小的取法。 首先肯定的是,选择排序之后再一起的代价应该是比较小的,但是会有1 2 34 35 36 这样的情况,1-2间距小,但是2-34很大。用dp[i][j]:{\rm{dp}}[i][j]:表示前i个数据中选择j的最小代价,考虑第i个要么选择要么不选择,不选择就是dp[i−1][j]dp[i - 1原创 2016-11-29 18:25:17 · 291 阅读 · 0 评论