摘要: 能够解决的问题 一些满足凸性的东西。 算法 wqs 二分 能解决的问题 让你求恰好用 \(k\) 步解决问题的最小代价,而且最小代价关于步数的函数有凸性。 如:求恰有 \(k\) 条白边的最小生成树,求把序列恰好分成 \(k\) 段的最小权值。 其实就是求一个凸函数 \(f(x)\) 的某一项。 思 阅读全文
posted @ 2026-02-14 20:06 porse 阅读(40) 评论(0) 推荐(0)
摘要: 前言 lxl 的课属实让我受益匪浅,这篇博客就来谈一谈他自创的算法:插入-标记-查找 算法概述 这是一个离线算法,用到了扫描线思想和数据结构,它可以秒掉这样一类问题: 给定 \(n\) 个映射 \(f_i(x)\;(i \in [1,n])\) 和 \(m\) 个询问 每个询问形如给定 \(x,l, 阅读全文
posted @ 2025-01-05 21:24 porse 阅读(70) 评论(0) 推荐(0)
摘要: 增量法 与构造有关的题目,可以考虑先构造子结构,再拼接。 栈式拼接:每次在末尾再拼 \(O(1)\) 位 CF1882E1 Two Permutations (Easy Version) - 洛谷 CF804E The same permutation - 洛谷 树形拼接:几个部分拼成整体 看起来完 阅读全文
posted @ 2026-09-21 16:15 porse 阅读(5) 评论(0) 推荐(0)
摘要: 积性函数推式子 莫反 式子: \[[i = 1] = \sum_{d | i} \mu(d) \]\[f(i) = \sum_{d | i} g(d) \to g(i) = \sum_{d | i} f(d) \mu(\frac{i}{d}) \]\[f(i) = \sum_{i | d} g(d) 阅读全文
posted @ 2026-08-19 11:10 porse 阅读(7) 评论(0) 推荐(0)
摘要: 拆点 有一个限制只关于一个节点本身,那么拆。 需求类问题 考虑把需求连向汇点,那么求(最小费用)最大流就行了。https://www.luogu.com.cn/problem/P1251 考虑建需求缺口,把预期最大流变成 \(inf\),然后建流量为 \(inf - \text{需求}\) 的边,最 阅读全文
posted @ 2026-08-15 20:06 porse 阅读(11) 评论(0) 推荐(0)
摘要: dag 最大独立集(也叫最长反链) Dilworth 定理:一个 dag 中最大独立集的大小,等于其偏序集的最小不可重链覆盖的大小。 听着很神秘,实际是这样: 偏序集:对于每一个点三元组 \((i, k, j)\),如果原图中有边 \((i, k)\) 和 \((k, j)\),则偏序集中有边 \( 阅读全文
posted @ 2025-10-10 21:31 porse 阅读(27) 评论(0) 推荐(0)
摘要: 分类 dp 当状态分为几类,而且降维时每一类要降的维不一样,我们可以对每一类分别开 dp,用不同的状态设计达到优化目的。 CF2143D2 Inversion Graph Coloring (Hard Version) - 洛谷 构造交换器 在序列转换问题(即给定一些操作,让你把 \(A\) 序列变 阅读全文
posted @ 2025-09-27 15:03 porse 阅读(57) 评论(0) 推荐(0)
摘要: 注意,此 Trick 的时间复杂度是错的,但是貌似目前没人能卡满。 能够解决的问题 \(O(n \sqrt n)\) 可过。 维护二维平面。 每次求到一个点的 \(k\) 近或 \(k\) 远点。 \(k\) 很小(\(20\) 左右) 思路 二维空间想到 KDTree(TreeKevin Dura 阅读全文
posted @ 2025-09-18 16:04 porse 阅读(32) 评论(0) 推荐(0)
摘要: 能够解决的问题 \(O(n \log n)\) 可过。 维护数列,无修改,每次查询一个区间的所有子区间。 离线 思路 看到一个区间的所有子区间这种查询,直接做显然是做不了的。 考虑离线,那么将询问区间进行右端点排序,然后就可以扫描线搞掉一维。 我们从左往右枚举 \(r\) 维护线段树 \(t\) 使 阅读全文
posted @ 2025-09-18 15:56 porse 阅读(50) 评论(0) 推荐(0)
摘要: 数据结构 Trick 之:KDT 求 k 近/远 点 - porse114514 - 博客园 数据结构 Trick 之:区间子区间计数 - porse114514 - 博客园 数据结构 Trick 之:分割问题的基于随机数的做法 - porse114514 - 博客园 历史最值线段树 在原来的基础上 阅读全文
posted @ 2025-09-16 20:44 porse 阅读(39) 评论(0) 推荐(0)
摘要: 能够解决的问题 规定某些事物只能用 \(need\) 个,求最值权值和。 设只能用 \(x\) 个时的答案为 \(\text{g}(x)\),则 \(\text{g}(x)\) 有凸性。 思路 由于有凸性,则我们可以二分斜率,求出每次的切点,与给定的 \(k\) 比大小,直到切点为它。 对于如何根据 阅读全文
posted @ 2025-07-29 16:26 porse 阅读(52) 评论(0) 推荐(0)