07 2023 档案

摘要:不妨先对题目进行如下转化: 把座位首尾相接排成一个圈,1 号座位与 n 号座位之间用一个编号为 n+1 的座位进行间隔,求一种方案使得没有人座到 n+1 的位置上去。 由于座位之间本质是相同的,故而有: 一个人从任意一个起点选择任意一个方向的方案数是 (2(n+1))m。 每个 阅读全文
posted @ 2023-07-31 12:50 徐子洋 阅读(1) 评论(0) 推荐(0) 编辑
摘要:与其说树上启发式合并是一种算法,不如说是一种思想。它在于通过”小的并入大的“保证复杂度,从而解决很多看似无法做的问题。 论纯用树上启发式合并的题很少,但是很多题却可以用树上启发式合并去解决。 模板 求解的问题往往具有如下性质: 每颗子树都有要记录的信息,信息的数量和子树大小有关。 一个父亲的信息包含 阅读全文
posted @ 2023-07-27 15:03 徐子洋 阅读(122) 评论(0) 推荐(0) 编辑
摘要:做法 首先,不难将题目转化为:给定一些物品(连通块),物品有体积(连通块大小),对于每个 x,求最少几件物品能恰好装满一个容积为 x 背包。 体积相同的物品我们视其为同一种。所以这是一个多重背包问题。利用二进制分解可以做到 O(nn)。 时间复杂度证明 假设第 i 种物品 阅读全文
posted @ 2023-07-26 19:45 徐子洋 阅读(4) 评论(0) 推荐(0) 编辑
摘要:首先,不难得出选 YES 答对的概率是 NN+M,选 NO 答对的概率是 MN+M。 于是我们有如下结论: 假设 N>M,我们必定选 YES;相反 M>N,则必定选 NO。 由于 YES 和 NO 没有本质之分,同时出于简化问题的考虑, 阅读全文
posted @ 2023-07-26 11:38 徐子洋 阅读(9) 评论(0) 推荐(0) 编辑
摘要:由于是取平方和,所以有明显的结论:一定存在一种最优方案,第 1 列是全 1 的。 这个结论看似没什么用,但却可以反应出如下性质: 定义“可取的位置”为:此时其所在区间还没有 1 的位置。那么答案必定是按照 某个优先级从大到小,逐列把列上所有“可取的位置”都变为 1。 拿样例解释一下, 阅读全文
posted @ 2023-07-25 13:05 徐子洋 阅读(2) 评论(0) 推荐(0) 编辑
摘要:题意 给出一颗 n 个节点的树以及 Q 个操作,操作可能的类型如下; 1 u,把 u 子树里的所有 Ai 加一。 2 u v,把 uv 路径上的所有 Ai 加一。 每次操作后查询如下式子:$$ \min_{1 \leq y \leq n}\sum_{1 \leq 阅读全文
posted @ 2023-07-22 17:07 徐子洋 阅读(18) 评论(0) 推荐(0) 编辑
摘要:首先,不难发现如下性质:提任意点为根——记一个点的到子树重心的距离为 di,假设点 i 和点 j 处于根的不同子树中,那么显然:(i,j) 路径上的权值和为 di+dj;假若点 i 和点 j 处于根的同一颗子树中,又满足 di+dj 大于 (i,j)阅读全文
posted @ 2023-07-21 19:54 徐子洋 阅读(12) 评论(0) 推荐(0) 编辑
摘要:RMQ RMQ(Range Minimum/Maximum Query),区间最值查询问题。 形式化来说,给出长为 n 的数组以及 m 组形如 l,r 的询问,对于每组询问,需要回答区间 [l,r] 里的最值。 有关四毛子算法 四毛子算法,一种分块 阅读全文
posted @ 2023-07-19 19:28 徐子洋 阅读(142) 评论(0) 推荐(0) 编辑
摘要:树上启发式合并题。 首先,要找到判断一个字符集是否存在重构成回文串的方法。 能重组成回文串仅当只存在至多一种字符的出现次数为奇数。 我们令 au 表示 1u 路径上的字符集的二进制状态。具体的,从右往左数第 1 位表示字符 a 的出现次数是否为奇数;从右往左第 2 位表 阅读全文
posted @ 2023-07-17 20:44 徐子洋 阅读(8) 评论(0) 推荐(0) 编辑
摘要:此做法用到 TrieDP。 首先,先对操作进行一个简单的转换: 2x+1 等价于在 x 的二进制串后面加上一个 1。 例如:x=5,2x+1=11,等价于在 5 的二进制 101 后面加上一个 1 得到 1011,即 11 阅读全文
posted @ 2023-07-06 11:11 徐子洋 阅读(2) 评论(0) 推荐(0) 编辑
摘要:思路 本题的线段树分治做法显然:维护每个元素存在的时间段,然后每进入线段树的一个节点时在 Trie 树上花 logV 的时间求出已有元素与它的最小异或值,放入一个堆中。离开一个节点时在堆中删除之前加入的最小异或值。 可删除堆实际上要用两个普通堆维护,代码如下: struct Large_Ro 阅读全文
posted @ 2023-07-04 12:19 徐子洋 阅读(8) 评论(0) 推荐(0) 编辑
摘要:思路 有向图 G(V,E) 中的强连通分量数量等于以下值: 将 G 的顶点集 V 分成两个顶点集 AB 的方案数,满足以下条件:A 中的顶点与 B 中的顶点之间的每条边都是从 A 指向 B,且 B 非空。 证明:设 s1,s2,,sk阅读全文
posted @ 2023-07-04 11:32 徐子洋 阅读(6) 评论(0) 推荐(0) 编辑
摘要:反悔贪心模板题。 首先,先按照 Li 从大到小对所有的优惠券进行排序。 这时候我们对所有优惠券 i=1m 一遍扫。扫的同时维护未使用过优惠券且 LiPj 个数,记为 cnt。维护的方法就是每次让 cnt 加上 Li11Li 阅读全文
posted @ 2023-07-03 18:56 徐子洋 阅读(15) 评论(0) 推荐(0) 编辑
摘要:简单的计数题。 从左到右一遍扫过去,分三种情况: Si=M 维护 0,1,2 三种权值分别出现的次数。第 i 种值的出现次数记为 ciSi=E 利用第 1 种情况维护的东西去维护两个数组合的所有情况。 记 ta,b 为 M 和 E 位置上分别是 a,b 阅读全文
posted @ 2023-07-03 18:11 徐子洋 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目类型 很妙的构造题,要写出较优的解也会考验一些码量。 解法 对于下文中的坐标 (i,j)i 表示行,j 表示列。 我们考虑对一个固定的位置 (i,j) 进行如下操作:上右下左上。 会发现 (i,j) 位置上的字符和 (i,j+1) 上的交换了,同时 j 这一列的其它 阅读全文
posted @ 2023-07-01 19:54 徐子洋 阅读(8) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示