03 2024 档案
摘要:【可持久化】 可持久化可以应用于查询历史版本的问题,关键在于给每个版本之间共用顶点,减小空间代价。 所以可持久化永远不会修改结点,只会新建结点。 可持久化不止应用于 "历史版本" 问题,有时题目并没有给出什么历史版本的描述,但是不同的线段树之间变化很小,也可以可持久化。 【模板】可持久化线段树 2
阅读全文
摘要:传送门 NOI 的题果然是非常的难且有意思。还有就是推荐一下command_block 的题解。 这题的题意比较难。 题意:有 种菜,初始每种菜有 个,单价 ,如果不出售每天会变质 棵。第一次卖这种菜会获得 的奖励。每天至多卖
阅读全文
摘要:P1484 种树 有 个坑。第 个坑种树的价值是 ,相邻坑不能同时种。可以种 颗树,求最大价值。 模拟费用流,建图类似这样: 中间两层结点之间有 条边,表示 的情况。相邻两条边,例如 总流入量为
阅读全文
摘要:P5470:NOI2019 序列 题意:给定两个长度 的序列 。 要求各选出 个数,使得这 个数之和最大,且两个序列选出的数至少有 个位置相同。 。 算法:模拟费用流。 【费用流模型】 关键点在
阅读全文
摘要:算法:线段树维护,模拟费用流。 传送门 你需要生产 张光盘。每张光盘都要经过两道工序:先在 A 工厂进行挤压,再送到 B 工厂涂上反光层。 你知道每天 A、B 工厂分别加工一张光盘的花费。你现在有 天时间,每天可以先送一张光盘到 A 工厂(或者不送),然后再送一张已经在 A
阅读全文
摘要:Silver A 先用随便一个优先队列求出最短时间(怎么分配面试官对总时间没影响)。 赛时的想法是用并查集维护所有曾同时间结束的面试官,但是是错的。 Hack:若面试官 与面试官 同时结束,之后 又与 同时结束。用并查集会认为 都是
阅读全文
摘要:KM 算法用来处理最大权完美匹配。 【定义】 记 的左部点为 ,右部点为 。 顶标:我们给每个结点一个整数标号 。 可行顶标:如果对于 ,\(l_{x_i}+l_{y_i}-w_{x_i,y_i}\ge
阅读全文
摘要:生成函数(generating function,简称 GF),一般只应用两种:OGF 和 EGF。 OGF 和 EGF 都是定义在一个数列上的。 【一些前置知识】 二项式卷积: 。 \(\exp(A(x))=\sum_{i\ge 0
阅读全文
摘要:模拟费用流,顾名思义,就是直接跑费用流会超时,于是尝试用数据结构模拟费用流的过程。 在某些题里,模拟费用流就是 "反悔贪心"。 标一下 command_block 的博客 LOJ574:黄金矿工 LOJ6405:征服世界 UOJ455:雪灾与外卖 P6122:Mole Tunnels 【普通模型】
阅读全文
摘要:模板题 动态添加线段,求某个 对应的 最大是多少,且对应哪条直线。 因为 比较小,考虑在 轴上建立线段树。把每个线段写成 的解析式形式并求出它的定义域 ,每条线段就可以看作是一个应用在 上的区
阅读全文
摘要:传送门 题意: 在一所学校里有 名学生和 个社团,社团被编号为 ~ 。第 个学生有一个能力值 ,且属于社团 (每个学生恰好属于一个社团)。 学校将要举行一个为期 天的活动,每天学校要举行一场程序设计比赛
阅读全文
摘要:传送门 题意:有 个勇者和 个怪物,第 个勇者有一个可杀怪物集合 ,每个勇者只能杀各自 中的一个怪物。 但是你有 瓶魔药,每一瓶都可以让一个勇者多杀一个 中的怪物。但是每个勇者只能吃一瓶药。问最多能杀多少个
阅读全文
摘要:传送门 题意:给定一张字符地图,# 代表墙,. 代表空地,D 代表门。初始每个空地都有一个人。 每个人可以在一秒内向上下左右移动一格。一个空地可以站任意多人。一个人走到门视作逃生成功。但是门很窄,一个时刻内只能有一个人进门。 问所有人逃生的最短时间。 。 注意到门一个时刻只能进一
阅读全文
摘要:A 题意:定义一个字符是特殊的,当且仅当它左右两边恰有一个字符与之相同。要求构造一个字符串,使得恰好有 个特殊字符,或判断无解。 考虑一个连续的字符段,如果长度 ,不贡献特殊字符;否则必然贡献 个。所以无解条件就是 。 否则可以用 AA
阅读全文
摘要:【定义】 向量:每个向量由若干个标量(数)组成,每个标量都来自同一个域 。若一个向量包含 个标量,称其为 维向量。 向量空间 :由若干个向量组成。需要满足以下条件: 中的向量满足加法交换律和加法结合律。 中存在 向量,\
阅读全文
摘要:传送门 当然有 的做法:主席树等等。 但是这题还可以用一种更暴力的方法:直接开线段树,每个结点保存的信息是对应区间的所有数从小到大排序后的结果。 pushup 就是对左右儿子归并排序。 查询就在数组上二分即可。 时间复杂度 ,空间复杂度 \
阅读全文
摘要:传送门 很巧妙的转化。 给每个结点染色(标号),如果一条边两端同色,是重边;否则为轻边。 初始让每个结点分别设一个超级大的颜色。 每次修改,等价于把路径上的点修改为一个没有出现过的颜色。 用树剖维护即可。
阅读全文
摘要:D 给定一张图,分为左右各 个点,左右各自内部是一个完全图,左右之间有 条边。求这个图的最大团。 。 对于每个右部点,求出一个长度为 的二进制数,第 位是 表示它与左部第 点有连边。 枚举
阅读全文
摘要:传送门 显然每一只龙对应了唯一的一把剑。用 multiset 可以求出每一把剑。于是题目就变成了: \[\begin{cases}b_1x\equiv a_1\pmod {m_1}\b_2x\equiv a_2\pmod{m_2}\\dots\b_nx\equiv a_n\pmod{m_n}\
阅读全文
摘要:普通的 CRT 只能处理模数两两互质的情况,而 EXCRT 可以求得任意情况下同余方程组的通解。 思想:把两个同余方程合并成一个,直到剩下一个。 考虑两个同余方程 。 则 \(x=p_1+m_1A=p_
阅读全文
摘要:A 用快速幂。 pair<ldb, ll> fpow(ldb a, int k) { ll A = 0, R = 0; while (a >= 10) { a /= 10; A++; } ldb r = 1.0; while (k) { if (k&1) { r = r * a; R += A; w
阅读全文
摘要:妙题。 要求线段不相交,即要求连线长度总和最小。 黑点向白点连边,容量 ,费用为它俩的距离。 向黑点/白点向 连边,容量 费用 。跑最小费用最大流。 然后检查每个黑点是哪个边流了即可。 注意这里一定不能偷懒不开根号!否则原本 \(e1.cst<e
阅读全文
摘要:传送门 题意:给定一个 01 矩阵,每次可以交换两行或交换两列,要使最终每行每列都有一个 ,是否可行? 如果 ,则第 行和第 列连边。每行每列都有一个 ,相当于匹配数为 。 交换某行某列,对图的结构没有本质影响,所以对一
阅读全文
摘要:传送门 平衡树优化神题,完全想不到平衡树能这么用! 一看这题散发着一股 DP 的清香。 表示前 个数且第 个数为 的最长上升子序列长度。但是转移方程不好优化,状态表示可以滚动数组压掉一维。 反方向考虑 DP: 表示
阅读全文
摘要:传送门 这玩意是 T2 ??? 观察到 或 ,所以我们可以尝试让每个栈里面都保持两张牌。同时保留一个空栈,用来消栈底。 记这个保留的空栈为 。 策略 1: 如果当前牌堆顶的牌能消,必然消; 否则除了 ,如果存在一个没有填到两张牌的栈,
阅读全文
摘要:参考(先看) 这个题解最后的式子写错了,看最后 (注意一下算层数要 n /= 2 !) 这里面关于 的用法:为什么是 已经讲得很清楚了。 主要补充一下怎么求 的部分。 如图,三个决策点的所在部分可以视作
阅读全文
摘要:传送门 题意:初始有 个 ,给定一个序列 ,每次可以选择一个长度为某个 的区间,将其全部取反。再给定一个序列 ,要求最后的状态是只有 中的位置是 。问最小步数/判断无解。 范围:\(n\le 10000,|a|=l\le
阅读全文
摘要:如果发现自己莫名其妙错了,可能是代码 UB,还开 O2!!!!!!!!!!! 传送门 首先,对于每个操作 2,将 连边。连边之后每个连通块内部可以在总和不变的情况下任意改变。 用并查集将每个连通块缩点,然后对于每个操作 1,将 连边。得到的图又会分成若
阅读全文