
线性DP
ACM败犬
这个作者很懒,什么都没留下…
展开
-
洛谷P1441_砝码称重:(搜索+dp)
题意:n个砝码,拿掉其中m个,可以称几种重量(砝码只能放一边)。搜索拿掉哪m个,可以按位置枚举每一个砝码是否要丢弃。因为砝码只能放一边。当枚举到合法丢弃方案时,可以dp求出能称几种重量。(暴力搜流派,不在搜之前就考虑贪心什么的增加徒劳的思维量)#include<iostream>using namespace std;#include<string.h>#i...原创 2019-03-19 19:51:47 · 334 阅读 · 0 评论 -
Codeforce 1068 :D. Array Without Local Maximums(线性dp + 思维)
题目大意:有一个长为 nnn 数组丢失了一部分,已知这个数组的所有元素的取值范围是[1,200][1,200][1,200],并且这个数组满足任意一个元素,它的前面一个或后面一个中一定有一个不小于它,让你复原这个数组,并求有多少种复原方法。题解:(往难的想肯定就难了,实际上这题并不难,掌握了dp的话可能一会就秒了)。当第iii个位置取定值,考虑第 i−1i - 1i−1个数字和 第 iii...原创 2019-08-18 18:52:12 · 154 阅读 · 0 评论 -
牛客练习赛 50:E. tokitsukaze and Segmentation(DP优化)
题目大意如图(觉得还是有必要写一篇题解,做法有很多,而我只会降智严重的做法)题解:考虑暴力dp,对于每个 i 结尾的数字,枚举前面不为0的数字,设下标为j,若满足sum[i] == sum[j] 则转移dp:tp[i]+=tp[j]tp[i] += tp[j]tp[i]+=tp[j];sum[i] 表示前 i 个数字之和对3的余数。考虑优化:注意到转移方程是一个求和的形式,而且需要满足条件...原创 2019-08-23 23:03:55 · 321 阅读 · 0 评论 -
Codeforce 1096:D. Easy Problem(DP,思维)
题目链接:https://codeforc.es/contest/1096/problem/D题目大意:有一个字符串数组,每个位置有一个权值,删掉这个字符要付出这个位置的字符的权值的代价,字符串中可能包含了 “hard” 字符序列,你要删掉一些字符使得字符串中不会出现 “hard” 子序列,求最小删除代价。题解:考虑 “hard” 字符串,当前字符是 “d” 时,要么删掉这个 “d”,要么在...原创 2019-08-24 16:22:33 · 275 阅读 · 0 评论 -
Codeforce 1061 C:Multiplicity(暴力预处理 + dp + 滚动数组)
题目大意:你有一个序列 a,定义 a 的子序列 b是一个good序列当 b 的每一个元素,能被它在b中所处位置的下标整除,求出 a 所有good 序列的数量。题解:考虑 a序列 的第 i 个元素 aia_iai,保留 aia_iai 的所有小于等于 i 的因子,设第 j 个小于等于 i 的因子为 g[j]g[j]g[j],尝试构造一个子序列使得aia_iai处于第g[j]g[j]g[j]...原创 2019-08-18 14:55:31 · 318 阅读 · 0 评论