随笔分类 - 动态规划
摘要:P6772 [NOI2020] 美食家 很简单的一道题,但是实现的时候需要一些优化 我最初的想法是,压入今后 天的状态,然后矩乘转移,对于不同美食节,断开特判即可 写的时候非常sb地把活动前 天的转移矩阵拿出来修改,后面发现只需要活动结束后改 即可 时间复杂度\(O(k(
阅读全文
摘要:静态维护凸包 动态维护凸包 Splay平衡树 维护每个点向左、向右的线段的斜率 (初始为 和 方便插入) 插入一个点时,先加入Splay,再向左右找到最接近的,可与新点形成新的凸包的点,把中间点删掉,更新 即可 具体实现:code cdq分治
阅读全文
摘要:轮廓线 球盒模型 题目 【3.14省选测试】计数 仔细分析发现一定至少有一个方向的箭头被另一个截断,形成两个凸包 用两条轮廓线描述凸包,发现可以转化为球盒模型,直接上就行了 然而会有特殊情况:凸包顶到同一行,但是错开(类似对勾函数),特殊处理即可,注意对顶的情况会算重 Group Projects
阅读全文
摘要:类似于单调队列优化,根据转移方程的性质选择合适的优化方案 线段树 应用场景:方程转移为一个区间且无单调性 [ARC085F] NRE 先按左端点排序,考虑前 个区间对答案的贡献,很容易写出 的方程 考虑到只会有两类转移点: 或\(l[i]\le r[
阅读全文
摘要: 枚举子集 状压DP中相当重要的技巧(虽然后位有FWT,FMT替代,但不是都能代) for(int i = x; i; i = (i - 1) & x) { // i 就是 x 的子集 } 题目 P6622 [省选联考 2020 A/B 卷] 信号传递 看数据范围,\(m \le 23\
阅读全文
摘要:在二维动态规划中,往往会有两个维度上的限制,此时,可以通过加维、换状态、改变枚举顺序来实现消除这两个维度的限制,但有时,往往需要分析 [P5664] Emiya 家今天的饭 分析题目,易知烹饪方法可以通过顺序枚举取消后效性,而主要食材加维、换序都不行,考虑别的道路 反向考虑,容斥原理 当正向思路受到
阅读全文
摘要:P7914 [CSP-S 2021] 括号序列 细节处理 , 部分可能算重(如(**)()*(())会被每一个分界点统计),需要强制确定是第一部分取 关路灯 [P5336] 成绩单 P1864 [NOI2009] 二叉查找树 区间DP 一开始想到的是直接\(f(l,r,de
阅读全文
摘要:错题 P8867 [NOIP2022] 建造军营 易分析出tarjan+树形DP 正如题解所说,有两种取消后效性的方法:加维或换定义 加维好想,但是比较难写,不过我倾向于加维,思路清晰不易错 p.s. 一定一定,要保证方程无后效性 md,拿了个有后效性的方程搞了2个小时 P4099 [HEOI201
阅读全文
摘要:1、小蜘蛛 题目描述 zty 一共养了 n 只小蜘蛛,第 i 只小蜘蛛有一个编号Ai ,这n 只小蜘蛛的编号恰好构成了一个长度为 n 的排列。小蜘蛛们在交友时总喜欢站成一排。他们的交友方式也很特别,每只小蜘蛛只会主动和在自己左方,且离自己最近的编号比自己小的小蜘蛛成为好朋友。若不存在,则不会主动结交
阅读全文