随笔分类 - 动态规划 -- 朴素DP
摘要:题目大意:给你一个序列,让你提取出一个子序列A,剩余的部分组成子序列B,现定义seg(x)表示把序列x中相邻的相同数合并成一个数后,序列x的长度,分别求seg(A)+seg(B)的最大值和最小值,n=1e5 考场上并没有想出最小值做法,只会最大值的贪心,下考才知道可以DP做?? 最大值的贪心: 维护
阅读全文
摘要:Day3B CF1012C(DP) 题目大意:给你一个序列,定义第i个位置为山峰当且仅当h[i-1]和h[i+1]均小于h[i],现在可以减少某些h[i]的值,代价为减少的量的总和。对于1到n/2(向上取整)的每个数j,需要求出当序列里至少有j个山峰时,需要付出的最小代价 考场再次弱智,我想个**的
阅读全文
摘要:P1552 [APIO2012]派遣(线段树合并+二分) 线段树合并板子题,维护子树内薪水为i的忍者有多少个,并记录薪水的和。为了使能被派遣的忍者更多,贪心取子树内尽可能多的便宜忍者,线段树上二分即可 直接线段树合并可能会卡空间,离散化一下 线段树合并的最后一层不能pushup!!!会变成0的,因此
阅读全文
摘要:朴素做法暴力DP,O(nk)过不去。。。 1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #define N1 2005 6 #define ll long long 7 usi
阅读全文

浙公网安备 33010602011771号