9.1
arc108e
当已经选了 时, 与外面无关。区间 dp,。维护 转移。
9.2
P5188
模拟赛 T2。
容斥强行不选 这些材料,矩阵快速幂。
CF1949H
模拟赛 T3。
按对角线向后推,计算经过次数。不能经过 次。经过次数形如 或 。维护两个 的位置 或是不是状态 2。如果 的 被禁止,去到状态 2,否则如果有 的位置被禁止则无解。如果 有被禁止,每次 的区间 会增加 ,否则 会缩短 , 个对角线后结束。
P10998
按 排序,对于每个 对 进行三元组计数。
条边的三元组计数 。如果 ,有 ,复杂度 。否则 至多 个,复杂度 。
P4843
有源汇上下界最小流,建超级源汇点补齐流量,跑最大流,从汇点向源点连容量 ,再跑最大流。答案为汇点到源点的流量。
P4043
最小费用可行流,建超级源汇点补齐流量,费用加上下界流量乘代价,从汇点向源点连容量 代价 的边。费用加上超级源汇点的最小费用最大流。
CF1288F
将边 拆为 和 ,分别表示红边或蓝边,都不流就不染色。左边的红点的右边的蓝点流出大于流入,连 ,反之连 。最小费用可行流。如果超级源点出边满流则合法。
9.3
P9338
要求前缀和时刻大于零。设 为第 个 A 前有多少个 B,,外层 wqs 二分。拆开 max,预处理 为最小的位置使得 ,内层 ,斜率优化。
CF2006E
等价于度数 的点到其余点的距离最大值。动态维护直径,每次中心偏移 ,dfn 序上子树加,全局 min。度数 就不贡献,度数 无解。
Q9123
升序排序,二分答案 。对于每个 可以 计算 的答案。设阈值 ,前 个的贡献 计算。如果没超过 , 的 贡献 。后边只需要前 小的 对, 预处理加 计算。 取 。
Q5095
模拟赛 T3。
最优策略决策为从下往上每个人删掉存在的最劣的数。 模拟,开始点下移时每个人的决策点单调,复杂度 。
9.4
模拟赛 T4
按值从小往大 dp,枚举笛卡尔树子树内哪个位置不被确定。保证数据随机,笛卡尔树深度 ,只用以 为底的幂, 预处理 查询。
P9850
容斥,设 为至少 条红边的方案,蓝色四元完全子图的数量为 ,红色四元完全子图的数量为。分类讨论,三/四元环计数。
P7386
将一个 和 捆绑起来。设有 个 和 个 。最后一层 的贡献为 。对于一个 ,枚举上面有 个 和 个 ,有 种可能,即有 个这样的 。 同理,算作一个大小为 的点。要求形如 。有 。所以 。lucas 定理计算。
9.5
gym102428J
模拟赛 T3
初始在 ,先向左走,令 ,若 ,答案为 中第一个 的位置;否则为 中最后一个 的位置。线段树上二分。
Q7899
模拟赛 T4。
分治。记 , 合法等价于 ,即 ,按 排序,树状数组维护 。正反做一遍得到划分 的答案 和划分 的答案 。
分治维护修改的变化量。当某个 改为 时,对于分治区间 ,当 是,区间 的 值发生变化,合法的 发生变化,重新计算 ,和原先应当贡献的 做差。·
9.6
arc165f
模拟赛 T4。
如果 则 在 前,跑字典序最小的拓扑序。主席树优化建图,优先拓扑主席树点,优先队列拓扑。
9.9
P7230
模拟赛 T4。
对每个左端点维护右端点 。操作形如删去一个数再加入一个数。如果删掉 上的 ,找到左右最近的 使得 。那么 对 取 max。实际上要维护 ,因为 单调,所以相当于线段树上二分找到最左的小于 的位置然后区间覆盖。
删除好做,加入难做,考虑线段树分治。先把所有的时刻的 都当作存在,右移右端点维护出所有 。 multiset 维护每个值出现的位置来求 。进入一个区间后进行删除操作。撤销操作记录下所有修改和下传的位置和值。
P4617
先手胜当且仅当 一定在最大匹配上。找出一个最大流, 一定在最大匹配上当且仅当 被选且残量网络缩点后 和 不在同一强连通分量。
9.10
模拟赛 T2
去掉头尾相等的。枚举回文中心 ,取最长回文串 ,求最大 使得 。等价于反串和自己匹配,kmp。翻转再做一遍。
CF1149D
模拟赛 T3。
令 , 边构成若干连通块,合法 边跨过两个连通块。不能走 边离开一个连通块再走 边返回,,只有 的连通块有用,状压,最短路, 。
9.11
P6684
模拟赛 T4。
等价对于每个 求最小的 使得 和 的边能组成奇环。将边复制一遍接在后面,即对于每个 求最小的 使得 间的边组成奇环。 有单调性。依次求每个 ,每次右移 ,加入的这条边 会在求 时都有贡献。插入容易删除困难,用线段树分治。初始没有边,分治到 时会对之后一个区间加入若干条边,一共加边 次。
P7307
答案为最大度数。允许误差,每次将边集一分为二。希望将每个点度数除以 上取整,在左右部点各建一个虚点,将度数补齐为全是偶数,存在欧拉回路,将相邻的边分开得到两个边集,分别递归。 轮后 ,将此时边集中的点染成一种颜色。
ucup 记录
9.12
joisc2017e
将 三进制拆分,,如果 或 被影响就不选。两边用同个随机排列来遍历数组,并尽量利用坏段。
Q9237
先补一个 ,在一直补 至 。还原时把最后一个 以后扔掉。有 个有效位,要用 位说明哪些位置被控制。令 后最近的 ,前 条信息第 位为 ,第 条信息第 位为 。还原时可以建图,找 个点的内向基环树的长为 的环,是唯一的。
agc034e
记 ,每步 减小 最优。维护 表示最多最少能将 子树内 变为多少。讨论最大的子树是否大于一半。
arc110e
用异或表示。令 , 不变。设 为划分 的方案,枚举最后一个字符是什么。
P6790
广义串并联图。删 度点,缩 度点,叠合重边。记 为第 条边在生成树上的方案数, 为不在的方案数。删一度点, 乘进答案;缩 度点,;叠合重边,。
9.13
模拟赛 T4
建 trie 树。先假设全选 ,计算答案与 的差值。按 dfn 序转移,设 为上一个单词在 的答案,。李超线段树维护转移。
9.14
abc308h
枚举连向环外的点 。在挖掉 的子图中求全源最短路,答案为 。线段树分治,加入点时进行松弛操作。复杂度 。
9.15
模拟赛 T4
Boruvka 算法。每次对于每个连通块找到最小的到连通块外的边,全部连起来。每次连通块数量减半。将矩阵加对对角线翻转,扫描线找到每个 的最小边。线段树分别维护最小值和连通块不同的次小值。
9.16
CF901D
模拟赛 T3。
找出一颗生成树,满足除了根以外的所有点。调整根,只有奇环有用。只要有一个奇环, 就可以减去 。因为保证 和 奇偶性相同,找一颗 bfs 的生成树即可。
9.18
Q8948
模拟赛 T3。
对于一个菊花,有 个黑色儿子, 个白色儿子, 当做 个黑; 当做 个白;否则若 为偶 Bob 要先走当做黑;否则当做白。
P10214
模拟赛 T4。
设 为 被投出时的票数, 和 较大者先出。 的儿子 影响 。对 按投出先后排序,二分一个前缀在 前被投出,即 。平衡树维护每个点的儿子,支持插入删除二分。
此时单点修改复杂度为 。重链剖分,求出 在轻儿子中二分的结果 ,若 ,;否则在轻儿子中二分 。 为关于 的分段常函数,段数为 ,可以合并。线段树维护重链信息乘积,修改时改链顶父亲的轻儿子的平衡树,查询时从链底 dp 值加上区间信息求 dp 值。
9.19
CF1647F
模拟赛 T3。
假设一个最大值为左边峰顶。设 表示前缀 ,一个序列在 ,另一个序列最小在哪里。 为后缀。从左边峰顶到 枚举右边峰顶,设 表示当前左/右序列在 ,另一序列的最大最小值。
CF1494F
模拟赛 T4。
最后是菊花,枚举菊花中心 ,删去与 连边的奇度数点找欧拉路径。
9.23
CF1635F
模拟赛 T3。
枚举可能贡献的答案对的较大值,只有左右第一个比 小的 才有贡献。
CF1784F
模拟赛 T4。
被删除的连续段长度一定是偶数;不会删去 以后的数;第二段关于中心对称。
枚举第一段长度 ,,枚举第二段在 左侧长为 。。下指标关于 变换量为 ,。否则剩余长度 ,剩 次操作,。
arc184b
对于不是 倍数的 ,将 中的 找出来,每次加入 ,有 级别宽的网格。状压 表示前 行已经选完,第 行选到 列,当前面上状态为 。 只有 级别,可过。
9.24
模拟赛 T4
扫描线维护编号较小的最大编号为 ,点边容斥强行选 ,主席树维护矩阵。交换 时重新做第 棵主席树即可。
9.25
【5校day1】构造题
从右上往左下确定每个点的颜色。对于点 最多有 个入边。如果不包含所以颜色,就赋没有出现的颜色。否则如果 通过 的连通块联通,那么 一定不通过 的连通块联通。
【5校day2】祖先
设 为 ,答案为 。单点加为链加。类似动态 dp 维护轻儿子处的 。区间加单点查。子树加,先加上 到根的贡献,再打上子树 tag,维护 次方和。树剖时先进入重儿子,再去到每个儿子,再进入轻儿子子树。
9.26
joisc2020q
模拟赛 T4。
对 连 求 的最短路。边权赋在点上,一个点只入队一次。按 建线段树,取出合法的 并删除。
【5校day5】签到题
先二分出 ,令 。先将序列放 个 ,每次加一个 ,每次加一个 。次数为 。
9.27
模拟赛 T3
dij 状求答案,与除去 的 最短路相关。找出最短路树,非树边进行路径取 min。
模拟赛 T4
有决策单调性,二分栈,主席树维护前 大的和。统计答案,只有不交区间有贡献,区间对区间 大取 min,如果一个点最后的值小于自己的值就可以选。
9.29
模拟赛 T4
每个位置对答案的贡献为向下递归的层数。设 的数最后出现在 , 被断开的层为 。 的贡献为 。取到后面的为 。
上指标求和,最后只与 有关的式子。
9.30
CF1648F
模拟赛 T4。
建出 dfs 树,非树边赋随机权值,随机异或哈希。如果割两条树边,只能是 。相同的 都在到根的链上,且有决策单调性,对于每个相同权值放在序列上分治。两边 的答案为:跨过 的点对减跨过 的点对加两倍没有跨过 但跨过 的点对。后面的贡献在 dfs 序上维护主席树,在两点处 ,lca 处 。