部分详见:

概率期望 DP 学习笔记

树形 DP 学习笔记

其余题就不具体分类了。

P1220 关路灯

题解说这是区间 DP 经典题,但我以前居然没听说过,这下尴尬了。

设 \(f_{i,j,0/1}\) 表示关掉区间 \([i,j]\) 所有灯,人在点 \(i/j\) 消耗的最少功率。

那么

\[f_{i,j,0}=\min(f_{i+1,j,0}+dis_{i,i+1}\times (sum-s_{i+1,j}),f_{i+1,j,1}+dis_{i,j}\times (sum-s_{i+1,j}))
\]
\[f_{i,j,1}=\min(f_{i,j-1,1}+dis_{j-1,j}\times (sum-s_{i,j-1}),f_{i,j-1,0}+dis_{i,j}\times (sum-s_{i,j-1}))
\]

P2466 [SDOI2008] Sue 的小球

做完上面那题这题就很好办了。

这题满足关系式 \(y=s_0-vt\),把功率换成速度,那这题就是求最小的价值乘移动距离的值。

于是就做完了(?

P2501 [HAOI2006]数字序列

第一问正难则反。考虑 \(i,j\) 均被保留,则需满足 \(j-i\ge a_j-a_i\)。移项,得 \(j-a_j\ge i-a_i\)。设 \(b_i=a_i-i\),那么 \(b_i\le b_j(i<j)\)。

即最长不下降子序列。

第二问根据贪心调整,必然可以使要调整的区间 \([l,r]\) 最后左边一部分与 \(b_{l-1}\) 连续,右边一部分与 \(b_{r+1}\) 连续。

感性证明一下:对于一个夹在两边之间的区间,设需要向上调整的点数为 \(cntup\),向下的为 \(cntdw\)。那么如果 \(cntup>cntdw\),把它向左边对齐显然是更优的;否则向右边对齐一定不劣。

保证数据随机,那么枚举每个 \(f_i=f_j+1\) 的点 \(j\) (要判合法),并从 \(j\) 到 \(i\) 枚举 \(k\),那它的复杂度不知道。O(能过)?

插播一条:

\(O(n \log n)\) 求最长不下降子序列

为啥我不会这个啊(雾

维护数组 \(d_i\) 表示满足 \(f_x=i\) 且 \(b_i\) 最小的 \(x\)。

新加入一个 \(x\) 时,若 \(b_x>=b_{d_cnt}\),直接把 \(x\) 插到 \(d\) 最后面。

否则根据 \(d\) 数组的单调性,二分找到第一个 \(b_{d_i}>b_x\) 把 \(x\) 放到 \(i\) 的位置上。

哦好像 \(d\) 数组直接存值比存下标简单。算了不管了(

P5289 [十二省联考 2019] 皮配

什么神仙题啊。虽然好像确实只考了背包。 啥时候会了啥时候填坑吧/youl

P4363 [九省联考 2018] 一双木棋 chess

轮廓线 DP。设轮廓线上横线为 \(1\),竖线为 \(0\)。那么一个状态就可以用长度为 \(2n\) 的二进制数表示。

至于转移,记搜时记录当前操作者并倒着转移即可。为啥一个 dfs 调 1.5h 啊。啥时候能学会 dfs 啊/kk

P4516 [JSOI2018] 潜入行动

无比熟悉。

终究没逃过写这个代码的命运。

注意循环的上下界,否则复杂度很容易写假。

P2605 [ZJOI2010]基站选址

线段树优化 dp。水黑好评ww

朴素 dp 设 \(f_{i,j}\) 表示前 \(i\) 个村庄,建了 \(j\) 个通讯站时 \([1,i]\) 的最少费用。显然可以把第二维滚掉,变成 \(f_i=\min\{f_j+s_{j+1,i-1}\}+c_i\)。

然后考虑点对答案的贡献,设 \(L_i,R_i\) 表示能覆盖点 \(i\) 最左/最右的位置。那么当循环到 \(R_i\) 时,\(i\) 对 \([1,L[i])\) 均有 \(w_i\) 的贡献。

那么用线段树维护 \(\min\{f_j+s_{j+1,i-1}\}\),支持区间加法。每次循环到下个 \(k\) 时,重构整棵线段树。

CF908G New Year and Original Order

盲猜一波一会讲题会匹配到这题(

upd: 真的匹配到了

直接暴力数位 dp 的复杂度是 \(O(700^3\times 10)\),显然过不去。

因为把数按照每个数位排序,那么任何一个排序后的数可以表示成一堆 \(11...111\) 相加的形式。

比如把 \(124\) 拆开就是 \(111+11+1+1\)。

观察到数 \(i\) 对答案的贡献只与 有几个数大于等于 i 有关。

故设 \(f_{i,j,0/1}\) 表示填了前 \(i\) 位,有 \(j\) 个数大于等于当前的 \(x\),最高位是否有限制。

从 1 到 9 枚举 \(x\) 分别数位 dp 统计贡献即可。

DP 杂题选做的更多相关文章

  1. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  2. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

  3. 贪心/构造/DP 杂题选做

    本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...

  4. dp杂题选做

    树的数量 题目其实挺简单的,难点在于状态的设计(其实也没多难). 令 \(f_i\) 表示 \(i\) 个点的 \(m\) 叉树的数量,发现无法转移.设 \(g_{i,j}\) 表示根节点所在子树内有 ...

  5. 期望dp好题选做

    前言: 最近连考两场期望dp的题目,sir说十分板子的题目我竟然一点也不会,而且讲过以后也觉得很不可改.于是开个坑. 1.晚测10 T2 大佬(kat) 明明有\(O(mlog)\)的写法,但是\(m ...

  6. dp杂题(根据个人进度选更)

    ----19.7.30 今天又开了一个新专题,dp杂题,我依旧按照之前一样,这一个专题更在一起,根据个人进度选更题目; dp就是动态规划,本人认为,动态规划的核心就是dp状态的设立以及dp转移方程的推 ...

  7. 正睿OI DAY3 杂题选讲

    正睿OI DAY3 杂题选讲 CodeChef MSTONES n个点,可以构造7条直线使得每个点都在直线上,找到一条直线使得上面的点最多 随机化算法,check到答案的概率为\(1/49\) \(n ...

  8. 2019暑期金华集训 Day6 杂题选讲

    自闭集训 Day6 杂题选讲 CF round 469 E 发现一个数不可能取两次,因为1,1不如1,2. 发现不可能选一个数的正负,因为1,-1不如1,-2. hihoCoder挑战赛29 D 设\ ...

  9. Atcoder 水题选做

    为什么是水题选做呢?因为我只会水题啊 ( 为什么是$Atcoder$呢?因为暑假学长来讲课的时候讲了三件事:不要用洛谷,不要用dev-c++,不要用单步调试.$bzoj$太难了,$Topcoder$整 ...

  10. Ynoi 数据结构题选做

    Ynoi 数据结构题选做 前言 我将成为数据结构之神!坚持 lxl 党的领导,紧随 nzhtl1477(女装灰太狼1477)的脚步.无论过去.现在还是未来,分块始终是实现 data structure ...

随机推荐

  1. CF1799B Equalize by Divide题解

    本蒟蒻学习了jiangly大佬的思想,来发一个题解. 大致题意: 给定一个 \(n\) 个元素的数组 \(a\),每次可以选择 \(a[i]\) 和 \(a[j]\),然后使 \(a[i] = \lc ...

  2. 基准测试工具 --- BenchmarkDotNet

    介绍 今天介绍一个非常强大的基于.Net 的基准测试工具BenchmarkDotNet. BenchmarkDotNet 已经被14300多个项目采用,包括非常多的知名开源项目,例如 dotnet/p ...

  3. FlinkSQL类型系统

    类型有什么作用, 类型可以提供编译期检查, 避免到运行期才报错. 类型 首先Flink中自己定义了一套类型, 有LogicalType和DataType两个表示 LogicalType Logical ...

  4. SQL-去除最大值与最小值求均值的问题

    背景 今天有同事问我一道关于数据库SQL的面试题,我刚开始随便给了一个思路,后来思索发现这个思路有漏洞,于是总结下来,仅供参考. 问题: 薪水表中是员工薪水的基本信息,包括雇员编号,和薪水,查询除去最 ...

  5. 【实践篇】DDD脚手架及编码规范

    一.背景介绍 我们团队一直在持续推进业务系统的体系化治理工作,在这个过程中我们沉淀了自己的DDD脚手架项目.脚手架项目是体系化治理过程中比较重要的一环,它的作用有两点: (1)可以对新建的项目进行统一 ...

  6. 【LaTeX】制作 PPT(更新中)

    目录 Beamer 模板 特性 frame 与 slide \pause itemize 中的尖括号 <strat-end> 参考资料 Beamer 模板 PPT 推荐用 Beamer 模 ...

  7. 在移动硬盘上安装Win11系统(不使用工具)

    一.准备镜像文件 1.前往官网下载Win11镜像文件. Win11官网:Download Windows 11 (microsoft.com) 2.装载Win11镜像 找到Win11镜像.右键点击装载 ...

  8. 我们能从PEP 703中学到什么

    PEP703是未来去除GIL的计划,当然现在提案还在继续修改,但大致方向确定了. 对于实现细节我没啥兴趣多说,挑几个我比较在意的点讲讲. 尽量少依赖原子操作的引用计数 没了GIL之后会出现两个以上的线 ...

  9. 当你使用Taro时,你需要了解的一些事儿

    2017 年 1 月 9 日凌晨,万众期待的微信小程序正式上线,前有跳一跳等爆圈小游戏的带动,后有特殊时期下各类健康码小程序的加持,小程序成为了国内技术圈独树一帜的存在.但随着小程序的迅猛发展,其实在 ...

  10. Go之流程控制大全: 细节、示例与最佳实践

    本文深入探讨Go语言中的流程控制语法,包括基本的if-else条件分支.for循环.switch-case多条件分支,以及与特定数据类型相关的流程控制,如for-range循环和type-switch ...