随笔分类 -  DP进阶

摘要:联考考试考到了这个题,随机化40分,现在来秒掉它吧。 题意: 给一个字符串,求其中的一段,使得出现次数最多的字符与出现次数最少的字符的出现次数之差最大。 输入输出样例 输入样例#1: 复制 10 aabbaaabab 输出样例#1: 复制 3 输入样例#1: 复制 10 aabbaaabab 输出样 阅读全文
posted @ 2018-09-09 22:15 Manjusaka丶梦寒 阅读(346) 评论(0) 推荐(1)
摘要:http://codevs.cn/problem/1486/ 我们比较熟悉二叉树,题目中给出的是一棵多叉树,我们需要将这可二叉树改造成二叉树。 二叉树可以为这样的: 父亲结点左边储存儿子,右边储存兄弟。 有两种改造方法: 之后再考虑转移,对于这个题来说,我们想要得到关于父节点的信息,就必须先处理完它 阅读全文
posted @ 2018-09-05 15:43 Manjusaka丶梦寒 阅读(140) 评论(0) 推荐(1)
摘要:http://cogs.pro:8080/cogs/problem/problem.php?pid=1669 "The Real Incantation is Their Common Increasing Subsequence of Maximal Possible Length" 真正的咒语是 阅读全文
posted @ 2018-09-03 22:20 Manjusaka丶梦寒 阅读(267) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problemnew/show/P3146 区间dp,这次设计的状态和一般的有一定的差异。 这次我们定义$dp[i][j]$表示$[i,j]$的可以合并出来最大取值,而不是合并区间$[i,j]$的最大取值。 同样的我们枚举区间长度,枚举左端点,求出右端点。 阅读全文
posted @ 2018-08-23 14:37 Manjusaka丶梦寒 阅读(130) 评论(0) 推荐(0)
摘要:题目游戏的加强版,建议先去A掉(双倍经验),数据范围比较大,所以我们不能想原来那样开二维数组来储存,所以我们必须压维,现在我们重新定义状态,一维数组dp[i]表示以i开头的最优拿法。 做法:枚举每一种区间长度i,大区间是由小区间得来,所以正序枚举区间长度,枚举左端点j: 若下一步取左端点:dp[i] 阅读全文
posted @ 2018-08-09 15:02 Manjusaka丶梦寒 阅读(113) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problemnew/show/P2734 数据范围比较小,二位DP可做,而luogu 3004,虽然几乎一模一样(只是数据范围大点),则需要压维。 定义f[i][j]表示从区间[i,j]的最大取数总和,那么既然每个人都是取最优的方案数,那么它可以由f[i 阅读全文
posted @ 2018-08-09 14:41 Manjusaka丶梦寒 阅读(155) 评论(0) 推荐(0)