2024年3月27日
摘要: P3402 可持久化并查集 思路 尽管这道题想让我们在线做, 但是我还是想离线哈哈 题目中既有撤销(回到第 k 个版本), 又涉及并查集, 想到用可撤销并查集 如果我们按照一般思路撤销来做, 就不得不将每个历史版本存一遍(很明显不可能) 如果第 i 次操作让我们回到第 k 次操作, 那我们何不在第 阅读全文
posted @ 2024-03-27 20:09 Bubble_e 阅读(63) 评论(0) 推荐(0)
摘要: 可撤销并查集 用途 顾名思义, 可以将以前的 Merge 操作撤销 但是只能从后往前一步一步撤销, 做不到像主席树一样直接访问历史版本 多用于树上问题 原理 按秩合并 将集合 x 和 y 合并时, 如果 siz[x] > siz[y], 那么就把 y 的父亲设为 x, 反之亦然 (和启发式合并有点像 阅读全文
posted @ 2024-03-27 20:08 Bubble_e 阅读(809) 评论(0) 推荐(1)
  2024年3月26日
摘要: 虚树 用途 一棵树上进行 m 次不同的操作, 每次用到 k 个节点( $\sum k $ $ O(n) 级别$ ) 用于于树上 DP 原理 将原树里的一部分用到的节点抠出来, 建一棵新树(虚树), 在上面进行 DP 优点: 降低每次操作的复杂度 构建 将要用到的节点(设为 s)按照 dfn 序排序 阅读全文
posted @ 2024-03-26 21:12 Bubble_e 阅读(98) 评论(0) 推荐(0)
  2024年3月25日
摘要: 3_24 ABC 346 F 圣经:那这怎么优化呢?你看到他数据范围出 log 了,那还有什么好说的,对不对?Stop learning useless algorithms, go and learn Binary Search. 我们就无脑二分 二分 k 的值, \(O(n log n)\) C 阅读全文
posted @ 2024-03-25 07:27 Bubble_e 阅读(28) 评论(0) 推荐(0)
  2024年2月22日
摘要: CF1530F Bingo 题解 容斥 问至少 1 行/列/对角线 全为 1 的概率 转化为求每 行/列/对角线 至少有 1 个 0 的概率 总概率 1 减去他就是答案 每行的状态相互独立 考虑枚举列和对角线的状态,0 表示存在 0,1 表示全是 1 根据列和对角线能推出每一行的状态 每一行的状态乘 阅读全文
posted @ 2024-02-22 22:11 Bubble_e 阅读(26) 评论(0) 推荐(0)
摘要: CF1093F Vasya and Array 题解 容斥 设 \(dp(i, j)\) 为考虑到 \(i\) 位置,该位置填 \(j\) 的方案数 分类讨论 如果 \(a[i] != -1\) 如果 \(j = a[i]\), \(dp(i, j) = \sum 前面的总方案数\) 否则 \(dp 阅读全文
posted @ 2024-02-22 22:10 Bubble_e 阅读(12) 评论(0) 推荐(0)
摘要: P10141 [USACO24JAN] Merging Cells P 题解 正难则反 正着,设 \(dp(l, r)\) 为合并出 \([l, r]\)的概率,枚举大区间两端点合并(区间DP) 复杂度 \(O(n^4)\) 反着,设 \(dp(l, r)\) 表示由 \([1, n]\) 分裂出 阅读全文
posted @ 2024-02-22 22:09 Bubble_e 阅读(86) 评论(0) 推荐(0)
  2024年2月21日
摘要: Day-7 模拟赛题解 S+N 【玄英计划】 2月21日 模拟测#3【补题】 - 比赛 - 梦熊联盟 T1 数据点 3 - 5 枚举每一个问号对应的字母 Kmp,把 s 当作模式串匹配 T \(O(26^k|T|)\),k 是 ? 的个数 代码(我也不知道为啥 T 了,鸽着) 正解 有种被诈骗了的感 阅读全文
posted @ 2024-02-21 22:03 Bubble_e 阅读(58) 评论(0) 推荐(0)
摘要: DP 背包 多重背包 单调队列 ??? P4141 退背包 由暴力到优化 每删一个, 做一次背包 $ n ^ 2 m $ 前后缀 F(i, j) 前 i 件, G(i, j) 第i - n 件 $ n m ^ 2 $ 退掉 i 物品 $ f(i, j) = \sum {f(i - 1, x)}$ $ 阅读全文
posted @ 2024-02-21 22:03 Bubble_e 阅读(36) 评论(0) 推荐(0)
摘要: 模拟赛 S+N 【玄英计划】 2月18日 模拟测#2【补题】 - 比赛 - 梦熊联盟 T1 15 分 :状压, 50 分: $ O(n ^ 2) $ $ O(n ^ 2) $ 的 check :赛时代码 正解:贪心 根据鸽巢原理:$ a_1, a_2, a_3 $ 至少会有两项是同一个等差数列的前两 阅读全文
posted @ 2024-02-21 22:02 Bubble_e 阅读(29) 评论(0) 推荐(0)