08 2023 档案
摘要:[题目链接](https://codeforces.com/problemset/problem/383/E) 拿到这题,看到求答案的方式:“平方的异或和”。这是就能想到可能有两种方式统计答案: * 直接按照他所说的去算。 算出每一种情况下的数量平方再取个异或和。 * 拆贡献 既然是平方,就无异于点
阅读全文
摘要:[原题链接](https://atcoder.jp/contests/arc100/tasks/arc100_c) 不难发现我们可以处理出每个状态所有子集中 的最大值和次大值,用一个 `pair` 维护,跑一遍 ,这时每个状态的权值就是最大值加次大值,最终输出
阅读全文
摘要:原题链接 首先我们让 表示有多少 是 的超集,那么有:取与后是 的超集的集合个数 (这里把空集也认为是 的超集,联系前后文,会发现这样其实不影响计数)。 再让 表示有多少集合取与后恰好是
阅读全文
摘要:模板 求高维矩阵的前缀和 每个位置上存的是原来单点的值。 一维 点击查看代码 for (int i = 1; i <= n; i++) a[i] += a[i - 1]; 二维 容斥 点击查看代码 for (int i = 1; i <= n; i++) for (int j = 1; j <= n
阅读全文
摘要:考虑霍尔定理和广义霍尔定理: 霍尔定理:对于一个左部图为 、右部图大小为 的二分图(钦定 ),存在边数等于 的匹配的充要条件是:对于左部图的任何一个点集,右部图中和它相邻的点集大小都大于等于它(相邻的点集指的是所有点出边的并集)。
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1288/D) 看到题目中有很多 ,一眼二分答案。 考虑一个常见的套路:假设我们二分的值是 ,那么我们在判断合法性时把数字矩阵变成 矩阵:假若 $a_{i,j}
阅读全文
摘要:[题目链接](http://codeforces.com/problemset/problem/1826/E "题目链接") 题意:给定一个物品序列。每个物品有 种属性和一个收益(第 个物品的第 种属性为 )。你需要从原序列中取出几个物品(可以乱序取),并给
阅读全文
摘要:由于每个特工只会监视一个特工,我们判断出这是一颗基环树。 基环树的题目我们往往可以从序列以及树去入手。 考虑序列怎么做。此时存在显然的贪心策略,让 这些位置的特工参与行动。对这个贪心加以分析,不难把它搬到基环树上去贪心——能选 ,就不去放弃 选 $a_x
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1103/C "题目链接") 任取一颗 树。 如果最大深度 ,则找到了一条路径。 对于剩下的情况,我们按环去处理。钦定一个合法环中的“代表点”
阅读全文
摘要:题目链接 题意 给出一棵有 个节点的树,要求你将集合 划分成若干个子集,使得没有子集拥有节点对满足两个元素在树上是祖孙关系。你需要最小化子集的最大值之和。 先考虑带有启发性的子任务 (树是一颗链)。具体来说,树有以下两种形态: 根节点是链
阅读全文
摘要:与其说树上启发式合并是一种算法,不如说是一种思想。它在于通过”小的并入大的“保证复杂度,从而解决很多看似无法做的问题。 论纯用树上启发式合并的题很少,但是很多题却可以用树上启发式合并去解决。 #### 模板 求解的问题往往具有如下性质: * 每颗子树都有要记录的信息,信息的数量和子树大小有关。 *
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1746/F) 这个数据范围,显然出题人出这题的本意不是让我们用带修莫队过题(当然有人过),而我们又难以找到很好的 维护方法。 故考虑另辟蹊径。对于所有 ,不妨把值
阅读全文
摘要:我么采用区间染色思维去做这题(把 看做一种颜色)。 钦定最终序列为 ,以及 分别为位置 左右离 最近的 (满足 )。 尝试思考每个颜色最后会覆盖到哪些位置。会发现 其实就是 能覆盖到的极大
阅读全文
摘要:考虑二分答案。于是现在问题转化成了: 的中位数是否 ( 为二分的值)。 可单纯这样,还没法直接做。继续转化:求出中位数 的区间个数。假设我们求出了这个区间个数(设它为 ),通过数学归纳,不难得出 的中位数 当且仅当 $
阅读全文
摘要:考虑枚举 。 根据 的定义,有:序列中比 小的数都不能被选到长为 的区间内。所以我们不妨用那些 的数把序列分割成几个连续段去处理。 有了连续段的性质之后,我们暴力处理出每个元素所处的连续段以及连续段的长度。之后再从小到大枚举 ,每次看看所有 $A_i=X
阅读全文
摘要:不妨采用一种常见的套路:我们把每个点的点权定义为它周围边的边权异或和。那么修改一条路径就转化为了修改两个点,最终的答案就是让所有点的点权都为 。 我们难以找到直接贪心的策略。但 ,考虑对于每种权值进行状压——先把权值相同的点两两消掉。在此之后,每种权值的点只
阅读全文
摘要:鉴于 ,我们大胆尝试,画出所有可能的平行四边形的形状。对于任意一个合法的四边形(即满足题面中两个条件的平行四边形),会发现如下性质: 它的四个端点在 轴坐标的奇偶性各不相同(不相同当且仅当 不同或者 不同)。 这个性质将会
阅读全文
摘要:假若 ,显然可以直接 : 状态: 表示至少得 分的期望代价。 转移: $$ f_i=\min_{j=1}^n(C_j+\frac{1}{p_j}\sum_{k=1}^{p_j}f_{\max(i-S_{j,k},0)}
阅读全文
摘要:先看一道较为类似的题:文理分科。 在那道题里,我们的最小割模型中有以下几种边: ,边权为 其中, 表示在第 行第 列的人。这条边保留表示在这个人选文科;割掉则是选理科。 ,边权为 $sc
阅读全文
摘要:考虑最小割。不妨把问题简化成两个人去看。根据最小割建模的套路,易画出类似这样的图: 其中, 分别为源汇点, 均各自代表了一个经理。最小割中,割掉 看作雇佣了 ,割掉 看作不雇佣 , 同理。 发现图中还有一个 。我们割掉 当且仅当 $
阅读全文
摘要:不妨先看一个子问题:太空飞行计划问题,它就是广为人知的“最大权闭合子图”模型。 在这道子问题中,仪器(机器)不能租用。我们考虑一个反悔的过程——开始先把所有实验的贡献算上,之后利用最小割模型去掉最小代价使得方案合法。 在最小割模型中,我们把所有实验、仪器都分别看成一个点。其中,源点向所有实验连一条容
阅读全文
摘要:考虑每个 # 的位置使用一块木板,之后进行一些调整。 对于每次调整,我们合并两块木板,使得合并完后木板依旧合法。 这个合并的过程考虑使用二分图的最大独立集。 具体的,我们把相邻的两个 # 之间连边,把边看做新图上的点。对于新图上的点 (假设它在原图上的对应边为 ),它在新图上会和一个
阅读全文
摘要:不妨设 ,则此时让集合 联通的限制一定是最松的。于是我们的任务就是找出两个大小分别为 的连通块。 需要知道的一点:假设我们找到了一个大于目标大小的连通块,构造时只需要一个一个地把叶子剥掉直至大小合法就行了。 先考虑原图是树的情况。由于 $b\le
阅读全文
摘要:首先,棋子的颜色分黑和白,是一个标准的二分图形式。 其次,我们对操作进行观察,易得出:一个空位到过的位置之后不会再走了(考虑操作步骤的奇偶性以及棋子的颜色)。 于是我们大胆想象:移动棋子等价于移动空格,既然一个空格走了就不会再回到原来的位置,那么只需要把一个位置看成一个点(空格为初始位置),问题就可
阅读全文
摘要:不难发现题面描述的比较特殊:给出了一个结论以及它的证明。 我们从中获得启发,对它进行了一个归纳总:一张 个节点的完全图中,一定存在一条长度大于等于 单调上升路径。 考虑把边划分成 个小组之后(组内边不想交),我们可以对于同个中的边赋连续区间的值,这样就
阅读全文
摘要:分两部分考虑,第一部分是如何用最少的边使得每个点的度数、图的总边数都变成偶数;第二部分是如何进行具体的构造。 其中第一部分的构造又可以考虑先满足每个点的度数为偶数,再满足总边数为偶数。 满足每个点的度数为偶数这点比较好做:可以每次从度数为奇数的点中任选两个,在它们之间连一条边。 由于于度数为奇数的点
阅读全文
摘要:定义 回文自动机(回文树),一种有限状态自动机,一种可以存储一个串中所有回文子串的高效数据结构。可以简单高效地解决众多与字符串回文相关的问题。 记号与约定 下文中, 是一个长为 字符串, 为 的倒串(翻转后的串), 是 的一个子串(下标从
阅读全文
摘要:考虑利用 辅助进行贪心。 先预处理出 所有前缀的 ,也就是熟知的 数组。然后在 上做一个贪心的匹配——假若 剩余的字符中还存在能和 中匹配的字符,那必定优先选它;否则之后只有一种可能,就是一直取同样
阅读全文
摘要:我们对数据进行观察/分析归纳,易得出要么 ,要么无解。 采用构造法证明: 先排除无解的情况:若 为偶回文,那么所有字符相等必定无解;若为奇回文,则除去中心字符以外的所有字符相等时无解。 对于剩下的情况,从前往后找到第一个与 不同的字符(下标从 开始),设
阅读全文