摘要: 掌握了斜率优化dp,就可以去切一堆紫题了 斜率优化dp原理:利用数学的斜率,通过计算查找得到最优的斜率以及常数项使得答案最优 维护最佳答案选择,我们通常都要维护一个上凸包或者一个下凸包 怎么才是一个优秀的凸包? 只需要斜率单调递增/递减即可 那么我们的这个斜率怎么求? y与x的比值,分别为常数以及带 阅读全文
posted @ 2025-11-28 10:07 huhangqi 阅读(9) 评论(0) 推荐(0)
摘要: 使用情况: 可以使用双指针,但是这道题目如果带删除并不好实现,这时可以考虑用两个栈模拟队列解决问题。 时间复杂度与普通的双指针没有区别,但是每一个值需要存储一个可能很大的状态,比如一个完整的背包,导致空间复杂度可能会比较大 具体原理就是用栈来模拟队列,加入时用一个栈,每个加入的值记录的状态都需要继承 阅读全文
posted @ 2025-11-28 10:05 huhangqi 阅读(3) 评论(0) 推荐(0)
摘要: 数位dp的特点 要求统计满足一定条件的数段数量 这些条件经过转化后可以使用数位的思想去理解和判断 输入会提供数字区间来限制统计 上界非常大 数位dp原理 从最高位向着低位一步一步枚举,记录下会对于后续产生影响的条件 一般在记忆化搜索时记录下是否受范围限制,若有限制则枚举而不记忆化 通过记忆化搜索来完 阅读全文
posted @ 2025-11-28 10:03 huhangqi 阅读(2) 评论(0) 推荐(0)
摘要: 树状数组,可以用于处理前缀和,前缀积,前缀最大值等等 相比于直接处理前缀和,优势在于修改和查询都是logn的,但是功能有限 树状数组通过将每一组数分为多块,提前处理好部分的和,在求值时根据特定的路径去查询 注意由于树状数组使用lowbit,所以不能直接处理0相关的问题 区间处理 在进行区间查询时,如 阅读全文
posted @ 2025-11-28 10:02 huhangqi 阅读(1) 评论(0) 推荐(0)
摘要: 最近公共祖先(LCA) LCA的常规求法包括:倍增,Tarjan LCA的求法 倍增 预处理 : \(O(n\log n)\) 查询 : \(O(\log n)\) 在线 需要在处理时处理倍增,查询时先将两个点倍增至同一高度,然后再倍增找到最近祖先。 代码: void dfs(int p,int f 阅读全文
posted @ 2025-11-28 10:01 huhangqi 阅读(5) 评论(0) 推荐(0)
摘要: 虽然CPP给的标题是线段树,但是由于后面又加了道和线段树无关的题目,然后发现这个扫描线还在二维数点里面有使用,就一并完成了,所以姑且称为 扫描线+图论优化 Part 1 扫描线 oi-wiki如是说: 扫描线一般运用在图形上面,它和它的字面意思十分相似,就是一条线在整个图上扫来扫去,它一般被用来解决 阅读全文
posted @ 2025-11-28 09:59 huhangqi 阅读(1) 评论(0) 推荐(0)
摘要: 三维偏序 第一维,通过排序直接解决 第二维,通过归并排序处理 第三维,通过数据结构解决 void CDQ(int l,int r){ if(l==r)return; int mid = l+r>>1,L=l,R=mid+1; CDQ(l,mid),CDQ(mid+1,r); for(int i=l; 阅读全文
posted @ 2025-11-28 09:57 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 回归后练的第一个专题,也是写的第一篇整理 区间 dp 首先需要区间可以合并,因此通常可以枚举拆开来的点 这里的拆我们可以分成三种 第一种是最为常规的,直接在中间枚举拆分的点即可,通常范围是 \(n\le 500\) ,如果 \(n\le50\) 可能需要再设计一维的状态 第二种则是选择拆掉最左边或者 阅读全文
posted @ 2025-11-28 09:55 huhangqi 阅读(3) 评论(0) 推荐(0)
摘要: 这里主要是讲无旋Treap,比较好维护,能实现大量功能,并且可持久化。 缺点在于常数大,码量大,并且时间复杂度期望为 \(\log n\),有极低概率成为大倒霉蛋。 什么是平衡树 平衡树是一种数据结构,这种数据结构是以二叉搜索树为主体,但是可以实现插入删除等操作。 平衡树比较常见的形式有 Splay 阅读全文
posted @ 2025-11-28 09:53 huhangqi 阅读(1) 评论(0) 推荐(0)
摘要: 定义 强联通分量:在有向图中任意两个节点连通的有向图(SCC) 点双连通分量:删除任意节点仍然连通(v-DCC) 边双连通分量:删除任意边仍然连通(e-DCC) 割点:删除这个点以后图的连通性会发生改变的点 桥:删除这条边后图的连通性会发生改变的边 Tarjan Tarjan 算法可以求出上面的所有 阅读全文
posted @ 2025-11-28 09:51 huhangqi 阅读(2) 评论(0) 推荐(0)
/*
*/