刷题记录

题目 算法 & 数据结构 巧妙点 思考问题 实现问题
P3605 [USACO17JAN] Promotion Counting P dfs 序 + 主席树 对 dfs 序的应用 明明权值树状数组就可以了,还差点加上了全部的树链剖分操作 /
P2590 [ZJOI2008] 树的统计 树链剖分 / / 1. dfn 与原编号的区分 2. 无向图数组两倍
P4088 [USACO18FEB] Slingshot P 离散化 + 树套树/树状数组 同样维护二重约束,主席树比树套树更省空间 没有看出“绝对值”这一形式化表示导致走了很多弯路 当遇到多种情况讨论时要清晰列出,并试着合并部分情况
P3168 [CQOI2015] 任务查询系统 主席树 区间操作 -> 差分操作 / 空间复杂度常数 & long long
P8844 [传智杯 #4 初赛] 小卡与落叶 (dfs 序 + 主席树/树状数组)or(欧拉序 + 线段树) 对 dfs 序的应用 & 主席树作前缀数组的可减性 / 边界情况:未操作时
P4148 简单题 k-D 树板子 / / 1. push_up 时特判空节点 2. 闲着没事不要加节点判重,容易写挂
P4475 巧克力王国 k-D 树(非正解) 转化为平面几何问题 判断矩形在函数上下需要判断四个点(?) /
P2486 [SDOI2011] 染色 树链剖分 / LCT 区间合并使用结构体封装减少编码复杂度 没有考虑到区间合并对每一次合并的普适性 1. 特判空区间 2. 合并时区间顺序
P4219 [BJOI2014] 大融合 LCT LCT 维护子树信息需要满足可减性 / 将要修改的值提到根再修改
P2542 [AHOI2005] 航线规划 LCT / 树链剖分 1. 离线倒序将删边转化为加边 2. 并查集实现动态缩点 3. 赋被删除点点权为 0 模拟删除过程 没有想到 3. 对于 Splay 预先处理好路径上变化(像 reverse 函数)是很重要的
P4219 [BJOI2014] 大融合 树链剖分 + 并查集 + 树状数组 + 树上差分 1. 链修改点查询 --树上差分--> 点修改子树查询,子树信息往往比链上信息更好维护 2. 树状数组动态维护树上差分 树状数组不直观,可先由线段树出发再转化为树状数组 /
P4129 [SHOI2006] 仙人掌 缩点(?) 某些图论问题可转化到搜索树上进行 1. 点双连通分量和“仙人”不一样吗(?)2. 如何确定本题高精最高位数 高精 *= 的写法
P4244 [SHOI2008] 仙人掌图 II 环形 DP + 树形 DP + 缩点 / 在仙人掌上进行 DP 的顺序问题(Tarjan 发现环时进行) 求点双时在取出 to 后停止出栈
P4427 [BJOI2018] 求和 LCA / / 取模有减法时要加模数
P3273 [SCOI2011] 棘手的操作 启发式合并堆 / 线段树合并 运用启发式合并来规避左偏树的复杂操作 1. 左偏树能做的线段树都能做,如果没思路就用线段树 2. 类似 dijkstra 的 bjt 方法可做到堆元素延迟删除 标记之间可能需要抵消
Tourists 圆方树 + 树链剖分 1. 圆方树:将方点分为“父亲”“儿子” 2. “父亲只有一个”是树的重要性质 3. 不直接维护方点的值,而是分为几个部分后组合 / 1. 圆方树:数组开两倍 2. 树链剖分:原编号和 dfn 序区别
P2602 [ZJOI2010] 数字计数 数位 dp 数位 dp 套路:先预处理后拼凑 / 拼凑:1. 注意“卡上界” 2. 用和预处理一样的方法可以省很多事
P2657 [SCOI2009] windy 数 数位 dp / / 数位 dp 特判:1. 首位(前导0) 2. 末位:不卡上界
P4124 [CQOI2016] 手机号码 数位 dp 发现有约束条件时,给转移方程增维 / 数位 dp 检查方法: 检查数列是否单增
P4127 [AHOI2009] 同类分布 数位 dp / 将 dp 循环顺序改变有时可以节省空间,甚至对卡常有帮助 先将所给数拆分到数组中可以省事
P3694 邦邦的大合唱站队 状压 dp 1. 10-20 之间的小数据想到状压 dp 2. 基于数据范围小的设计算法 / /
P3092 [USACO13NOV] No Change G 贪心 + 状压 dp + 二分 / / /
P2396 yyy loves Maths VII 状压 dp / / lowbit 优化有 1/2 的常数
String painter 区间 dp / 区间 dp 的决策包容性往往很高,往往只需要考虑特殊情况 /
Travelling 三进制状压 dp / / i%Bit[j+1] < Bit[j] 判断是否为 0 技巧
You Are the One 区间 dp 区间 dp 的决策包容性往往很高,往往只需要考虑特殊情况 通过数据范围,要感觉出这是道区间 dp /
Rectangle Painting 1 二维区间 dp(\(O(n^5)\) / / /
P2495 [SDOI2011] 消耗战 虚树 dp / / 虚树 dp 建虚树时注意数组开两倍
P4410 [HNOI2009] 无归岛 仙人掌 dp / 1. 不要惯性思维看到环形 dp 就两倍数组单调队列,对于只关心相邻状态的,可以强断强连 2. 不要惯性思维看到仙人掌就圆方树,还能 dfs 树 /
P3233 [HNOI2014] 世界树 虚树 dp 两次搜索在树上求最近“某类点” 1. 虚树题目最好先把暴力写出来再推广 2. 树上可能可以用一次“对上”+一次“对下”的 dp 解决问题 1. 虚树注意特判 1 号节点(Key 数组,head 数组…)2. 虚树注意区分 h[i] 和 i 3. 多测清空
P3177 [HAOI2015] 树上染色 树形 dp 1. 将统计路径拆分为分别统计边 2. 树形背包合并严格卡上下界可以做到 \(O(n^2)\)(?)3. “费用提前计算” 树形 dp 不只可以局限于“一棵子树”内的信息,还可以与整体其他部分挂钩 /
posted @ 2023-11-22 16:12  David_Mercury  阅读(14)  评论(0编辑  收藏  举报