Loading

摘要: 文章有点长,都是由本人一点一点写出来的,公式加载需要一段时间。 CF1152E Neko and Flashback 思路来自 @apple365。 思路 任意一组 \(b_i, c_i\) 都是相邻的两条边,所以我们将 \(b_i\) 和 \(c_i\) 连起来,如果可以跑通一条欧拉路径,那么这条 阅读全文
posted @ 2024-07-22 08:28 SunnyYuan 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 文章有点长,都是由本人一点一点写出来的,公式加载需要一段时间。 CF149D Coloring Brackets 思路 这是一道很好的区间 DP 题目。 我们可以设 \(f_{l, r, c1, c2}\) 表示在 \([l, r]\) 这一段头端染色 \(c1\),尾部染色 \(c2\) 可以获得 阅读全文
posted @ 2024-07-22 08:09 SunnyYuan 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 文章有点长,都是由本人一点一点写出来的,公式加载需要一段时间。 CF576D Flights for Regular Customers 思路 首先我们可以按边的权值对边从小到大进行排序。 然后,我们可以从前往后枚举每一条边 \(i\),假设边 \(i\) 需要经过至少 \(d_i\) 条边才能经过 阅读全文
posted @ 2024-07-20 16:14 SunnyYuan 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目 给定两个字符串,在字符串 \(a\) 中找子序列,在 \(b\) 中找一个子串,询问有多少个子序列与子串相等,重复的字符串算一次。 思路 匹配和去重,想到哈希。 匹配,想到双指针。 每次枚举将要匹配的 \(b\) 数组的左端点,双指针匹配 \(a\) 数组,如果成功,那么将 \(b[i, j] 阅读全文
posted @ 2024-09-12 09:24 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目描述 点击查看题目 题目背景 (喵星人 LHX 和 WD 同心协力击退了汪星人的入侵,不幸的是,汪星人撤退之前给它们制造了一片幻象迷宫。) WD:呜呜,肿么办啊…… LHX:momo...我们一定能走出去的! WD:嗯,+U+U! 题目描述 幻象迷宫可以认为是无限大的,不过它由若干个 \(N\t 阅读全文
posted @ 2024-09-11 16:57 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题意 如果两个线段相交(不包括端点),那么你可以从一个线段移动到另外一个线段。动态添加线段,询问能否从一个线段前往另外一个线段。 思路 我们不难想到利用 \(scc\) 来解决点对之间的关系(经典例题《炸弹》),离散化后使用权值线段树保存点对关系。 具体来说,用有向边表示两个线段能相互影响,如果有个 阅读全文
posted @ 2024-09-10 15:48 SunnyYuan 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 题目 思路 因为每个党只有 2 个代表,所以这个题目很好做。 考虑使用 2-SAT,如果这个党的 \(x\) 厌恶另外一个党的 \(y\),那么如果 \(x\) 存在,那么 \(y\) 不能参加,而一个党必须有一个人,所以只能由 \(y\) 的同伙出席,反之亦然。 这已具备 2-SAT 题目特征,连 阅读全文
posted @ 2024-08-29 00:08 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2-SAT 定义 可以看一下洛谷模板题目的定义: 思路 每个等式都可以理解为如果 \(x\) 不是条件规定的,那么 \(y\) 必须按照条件规定的,反过来也一样。 所以我们将一个数字拆成两个点,对于每个条件将代表取反 \(x\) 的点与 \(y\) 相连,将代表取反 \(y\) 的点与 \(x\) 阅读全文
posted @ 2024-08-29 00:01 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目 思路 我们按照土地的长为第一关键字,土地的宽为第二关键字,从大到小排序,对于将被大矩形完全包含的小矩形删去,因其不影响结果,这样就得到了长严格下降,宽严格上升的序列。 从左往右考虑合并,假如将 \(l\) 到 \(r\) 段合并,那么长取矩形 \(l\) 的长 \(w_l\),宽取矩形 \(r 阅读全文
posted @ 2024-08-28 23:45 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 题目 思路 首先,我们可以将一条要标记的路线 \((s, t)\) ,设 \(lca\) 为 \(s\) 和 \(t\) 的最近公共祖先,分成 \((s, lca)\) 和 \((lca, t)\) 两个部分,这两个部分分别对应一种 \(y = kx + b\),容易想到使用李超线段树。 对于 \( 阅读全文
posted @ 2024-08-28 14:44 SunnyYuan 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 设 \(sum_i = \sum\limits_{j = 1}^i w_j\)。 可以得到转移方程 \(f_i = f_j + (h_i - h_j) ^ 2 + sum_i - sum_j\)。 转化为 \(y = kx + b\) 的形式: \(f_i = f_j + (h_i - 阅读全文
posted @ 2024-08-28 09:12 SunnyYuan 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 李超线段树 定义 可以看看洛谷的模板题目: 作用 优化动态规划,如果可以将一个动态规划的转移式子转化为 \(y = kx + b\) 的形式,那么我们可以边转移边将 \(y = kx + b\) 这条线段放入李超线段树,然后在下次转移时,直接调用下次计算出来的 \(x\) 位置上的最大值或最小值。( 阅读全文
posted @ 2024-08-28 09:03 SunnyYuan 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个长度为 \(n\) 的序列(\(1 \le n \le 2 \times 10 ^ 7\)),对于每组询问 \([l, r]\),找到其区间最大值,并进行累加。 思路 \(n\) 太大,不能用 ST 表/线段树,考虑以下表为键值,数值为优先级建出笛卡尔树。 对于左右两个端点 \([l, 阅读全文
posted @ 2024-08-23 17:44 SunnyYuan 阅读(2) 评论(0) 推荐(0) 编辑