7.7
P6891
设 为前 个选了 个 A 中的数,结尾是 A/B。交换维度,改为 pair 表示前 个,结尾是 A/B,合法的 的范围。
CF1919F2
网络流建图,。转为最小割,线段树维护区间左右两端割 还是 。如果 割 且 割 ,还要额外割 。
abc310g
期望转为总和除以 。贡献分环和树做前缀和。
P4370
有 ,加入优先队列。数存不下,取对数比较。
7.8
CF1830D
MEX 值为 ,先令值都为 计算损耗。同时连通块之间有损耗。 表示当前包含 的同色连通块颜色和大小时的最小损耗。大小一维不超过 ,计算完儿子就释放空间。
Q1281
枚举前后 个 , 个 。。
拆 ,从后向前遍历 ,权值线段树。
CF1656H
等价于 。建 个线段树,单点删除。
CF1270H
连通块一定是序列上的一段连续的区间。等价于计算分段点,多少 使得 。对于每个 将序列改写为 01 序列,维护有几个 和 是否出现。
Q1163
树剖,讨论 是否是 的祖先。 等价于以 为根,每条边下的子树的 和。维护区间加一次函数,加子树大小。
CF1548E
给每个连通块定一个代表,按 比较。预处理 左右比 大的 和 。 能向更小的走一定能去到 。所以满足条件的 满足 。扫描线。
Q1838
记 为两个相交且第三个都无交, 为一个和两个都有交且另两个无交, 为三个两两有交。扫描线算出与 相交的数量 。。只要求 。
扫描线,在 最大的矩形上计数,再容斥为 减两个无交。。线段树维护区间有几个左右端点,有多少对先右后左的端点对。
Q3029
求出每条边的断裂时间,用重构树回答询问。考虑树的情况,在 记录当前 对 高低的上下界要求。对于 变化,判断在不在上下界内,再更新 的上下界。到平面图,给边定向,希望 这样的出边尽可能少。每次找到度最小的点全部定为出边,出度小于 。
7.10
CF1844E
确定了第一行第一列就可以确定整个矩阵,每行每列差分值相同,取值只有 。限制转换为差分值相等或相反,二分图染色。
CF1693F
希望每次操作 使贡献为 。若整个序列 少于 ,就翻转并取反序列。每次找到最长的 前缀并删去 个 ,直到 就补满 一次做完。
CF1656G
相当于从 到 一对对填数,维护若干条链。除了最后一步,无论如何都能找到一对 入度为 且 且不会形成环。如果 为奇数,找到一个 使得 且 为奇数,可能无解。
Q5416
时间逆流,覆盖等于将区域设为通配符。每次保证至少增加一个通配符即可。
Q5504
线段树优化建图跑 2-sat。要在 DAG 上找到大小之和在 中的后缀。如果不存在某个点大小大于 ,取拓扑序的一段前缀。否则判断一个大小大于 的点的前缀后缀是否符合条件。
CF1209G2
对于每个颜色的 加 ,每个极长非零连续段答案独立,选区间出现次数最多的颜色。按最小值分割,线段树维护。
7.11
uoj698
前缀线性基求交,二分。
线性基 A,B 的交:对于每个 ,如果能被 子集异或出来,就把方案中属于 a 的异或和加入交中。
P2260
整除分块, 只有 种取值。
P3455
=\sum_{i=1}^{\frac{n}{k}}\sum_{j=1}^{\frac{m}{k}}\sum_{d\mid gcd(i,j)}\mu (d)$$$$=\sum_{d=1}^n \mu(d)\frac{n}{kd}\frac{m}{kd}
预处理 前缀和,整除分块。
7.13
loj3627
,且当且仅当 a,b 合法时取等。
枚举 和 , 为定值,贪心最大化 检查。
P8340
从小到大加数,要保证 。容斥, 表示当前能表示出 。且总和为 。等价于 的互异拆分数减去之前的 乘上 中的数和为 的方案数。
求互异拆分数,数字个数 个,等于从 到 完全背包加入 ,表示有多少个数大于 。
贡献给 也形如求互异拆分数,有 。类似半在线卷积,前一半贡献给后一半。
7.14
P10778
找出一棵生成树,给非树边赋随机值,随机异或哈希,树边等于跨过该边的非树边的权值异或和。图不连通等价于若干条边的权值中存在子集异或和为 ,线性基。
P6647
每 分一段,每一段中使用的天数相同。。一段段计算,预处理前一段的后缀最大值,更新当前段的前缀最大值。
CF1730F
按 从小到大填入,设当前填完前缀 , 没填,状压 是否填入。
CF1781F
合法状态数除以 。 表示还有 次插入,当前前缀和为 。
前缀和优化。
P10207
离散化后不同位置的球数小于 。球会在最后一次经过时取到,设 表示取了 的球。分类预处理先去 还是 号球。
CF1119F
设 表示当前在 ,父亲边断不断。先令 ,再加上前 小的 。
从小到大计算 。如果 ,就不用再考虑了,将 加入 的堆中永不删除。每次要操作的点数之和为 是 级别。
Q1251
关键点在前后缀最大值。设 表示前 ,之前的最大位于 ,用了 次删除操作的面积奇偶性。只有删除操作才可能改变最大值位置, 只有 种取值。对前后缀分别做,枚举最大值位置合并。
arc117e
连续段 dp,按前缀和从大往小加数,枚举这一层放多少点。
7.15
arc063d
答案不小于 。如果答案矩形被包含于上左下右四个子矩阵中,一定不优,所以一定跨过横向中线或竖向中线。
扫描线枚举右边界,单调栈加线段树维护。
7.16
P5537
维护走向第几个儿子,记录从根到 的哈希值。二分,维护区间哈希值拼上根到 的哈希值,map 查找是否存在这个点。
P7717
找出生成树,对于每个连通块给根找一个数 使得 。等价于在 trie 树上禁止进入某个子树。
P1117
枚举答案长度,每个 分为一段。二分两段的最长公共前缀和最长公共后缀,平移后相交的区间意味着可以放下长为 的合法串。差分。
P3735
等于有一个长为 的通配符区间的方案数减去有长为 的通配符的方案数。AC 自动机加入正着和反着的串。 和 必须匹配,等于查询 的子树内有多少点与 有关,树状数组维护,在进入退出 时查询字子树和。
7.17
P7361
用 set 启发式合并 edp 集合,一个长度的贡献为相邻的 edp 点。贡献为 。离线,扫描线。