07 2023 档案
摘要:不妨先对题目进行如下转化: 把座位首尾相接排成一个圈, 号座位与 号座位之间用一个编号为 的座位进行间隔,求一种方案使得没有人座到 的位置上去。 由于座位之间本质是相同的,故而有: 一个人从任意一个起点选择任意一个方向的方案数是 。 每个
阅读全文
摘要:与其说树上启发式合并是一种算法,不如说是一种思想。它在于通过”小的并入大的“保证复杂度,从而解决很多看似无法做的问题。 论纯用树上启发式合并的题很少,但是很多题却可以用树上启发式合并去解决。 模板 求解的问题往往具有如下性质: 每颗子树都有要记录的信息,信息的数量和子树大小有关。 一个父亲的信息包含
阅读全文
摘要:做法 首先,不难将题目转化为:给定一些物品(连通块),物品有体积(连通块大小),对于每个 ,求最少几件物品能恰好装满一个容积为 背包。 体积相同的物品我们视其为同一种。所以这是一个多重背包问题。利用二进制分解可以做到 。 时间复杂度证明 假设第 种物品
阅读全文
摘要:首先,不难得出选 YES 答对的概率是 ,选 NO 答对的概率是 。 于是我们有如下结论: 假设 ,我们必定选 YES;相反 ,则必定选 NO。 由于 YES 和 NO 没有本质之分,同时出于简化问题的考虑,
阅读全文
摘要:由于是取平方和,所以有明显的结论:一定存在一种最优方案,第 列是全 的。 这个结论看似没什么用,但却可以反应出如下性质: 定义“可取的位置”为:此时其所在区间还没有 的位置。那么答案必定是按照 某个优先级从大到小,逐列把列上所有“可取的位置”都变为 。 拿样例解释一下,
阅读全文
摘要:题意 给出一颗 个节点的树以及 个操作,操作可能的类型如下; 1 u,把 子树里的所有 加一。 2 u v,把 到 路径上的所有 加一。 每次操作后查询如下式子:$$ \min_{1 \leq y \leq n}\sum_{1 \leq
阅读全文
摘要:首先,不难发现如下性质:提任意点为根——记一个点的到子树重心的距离为 ,假设点 和点 处于根的不同子树中,那么显然: 路径上的权值和为 ;假若点 和点 处于根的同一颗子树中,又满足 大于 路
阅读全文
摘要:树上启发式合并题。 首先,要找到判断一个字符集是否存在重构成回文串的方法。 能重组成回文串仅当只存在至多一种字符的出现次数为奇数。 我们令 表示 路径上的字符集的二进制状态。具体的,从右往左数第 位表示字符 的出现次数是否为奇数;从右往左第 位表
阅读全文
摘要:思路 本题的线段树分治做法显然:维护每个元素存在的时间段,然后每进入线段树的一个节点时在 Trie 树上花 的时间求出已有元素与它的最小异或值,放入一个堆中。离开一个节点时在堆中删除之前加入的最小异或值。 可删除堆实际上要用两个普通堆维护,代码如下: struct Large_Ro
阅读全文
摘要:简单的计数题。 从左到右一遍扫过去,分三种情况: 维护 三种权值分别出现的次数。第 种值的出现次数记为 。 利用第 种情况维护的东西去维护两个数组合的所有情况。 记 为 M 和 E 位置上分别是
阅读全文
摘要:题目类型 很妙的构造题,要写出较优的解也会考验一些码量。 解法 对于下文中的坐标 , 表示行, 表示列。 我们考虑对一个固定的位置 进行如下操作:上右下左上。 会发现 位置上的字符和 上的交换了,同时 这一列的其它
阅读全文