OI题解
文章平均质量分 94
各种热/冷门题目的题解,有详有略
UnderTheTime
洛谷号:https://www.luogu.com.cn/user/680855
CF号:https://codeforces.com/profile/under_the_time
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2025 XYD Summer Camp 7.21 智灵班分班考 · Day1
智灵班分班考首日战况:选手在远古机房艰难应战,T1因空格键故障和转移方程错误导致仅获30分;T2区间DP思路受阻,MLE挂零;T3二维数点解法正确获满分;T4因样例错误误判而零分。最终总分130分,排名第50。题解揭示了T1的正确线段树优化DP解法(原式误为隔一转移),T2的区间DP正解(子树权值计算方式),反映选手临场调试和细节处理的不足。原创 2025-07-22 10:55:06 · 1153 阅读 · 0 评论 -
2025 XYD Summer Camp 7.17 模考
摘要 本文记录了作者在算法竞赛中的解题过程与题解。T1考察区间DP,通过设计五维状态和优化转移方程解决;T2分析组合数求和问题,提出组合意义和多项式展开两种解法;T3研究最长上升子序列的区间删除问题,采用分块和预处理策略优化查询效率。三题分别展现了动态规划、组合数学和数据结构在算法竞赛中的综合应用,为类似问题提供了解决思路。原创 2025-07-17 19:15:27 · 958 阅读 · 0 评论 -
2025 XYD Summer Camp 7.14 模考
这是一场算法竞赛的参赛记录与题解。选手在8:30开始解题,分别完成了T1、T2、T3题目,其中T1因忽略限制条件导致错误,T2通过质因数分解和组合数学解决,T3运用特定技巧快速通过。最终成绩显示部分题目得分不理想,尤其是T1在结束前2分钟发现错误。题解详细分析了各题解法与错因,T1的贪心策略存在缺陷,T2通过枚举质因数分解高效处理,T3则直接求解最短路中的最大边权。代码实现展示了具体解决方案。原创 2025-07-15 16:16:19 · 431 阅读 · 0 评论 -
2025XYD Summer Camp 7.11 模考
把逆元放一边,先把式子化简:∑i=1n∑j=1mlcm(i,j)=∑i=1n∑j=1mijgcd(i,j)=∑d=1min(n,m)d∑i=1⌊n/d⌋∑j=1⌊m/d⌋ij[gcd(i,j)=1]=∑d=1min(n,m)d∑k=1min(⌊n/d⌋,⌊m/d⌋)k2μ(k)∑i=1⌊n/kd⌋∑j=1⌊m/kd⌋ij\begin{aligned}\sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(i,j)&=\sum_{i=1}^n\sum_{j=1}^原创 2025-07-12 19:01:07 · 493 阅读 · 0 评论 -
2025 XYD Summer Camp 7.10 筛法
最终只需计算 ∑d=1min(n,m)μ(d)⌊n/d⌋⌊m/d⌋\sum_{d=1}^{\min(n,m)}\mu(d)\lfloor n/d\rfloor\lfloor m/d\rfloor∑d=1min(n,m)μ(d)⌊n/d⌋⌊m/d⌋,瓶颈在于计算 μ\muμ 在若干个点上的前缀和,这些点一定属于 nnn 或 mmm 的整除点集合 Dn,DmD_n,D_mDn,Dm(就是使得 ⌊n/i⌋≠⌊n/(i+1)⌋\lfloor n/i\rfloor\ne \lfloor n/(i+1)\rfl原创 2025-07-12 18:59:01 · 506 阅读 · 0 评论 -
2024 信友队 noip 冲刺 10.11
不妨考虑图中的一条链,可以发现这条链的起始点要向链上所有点连边。那么可以推出对于点 uuu,需要向 uuu 能走到的所有点进行连边。nnn 次 dfs 即可。T2考虑使用 来维护每个点连出去的边,然后就做完了。删边时均摊 O(Q)O(Q)O(Q)。T3考虑分别建 nnn 个点表示 nnn 个集合,建 mmm 个点表示数字,每个集合向集合中的数连边权为 111 的有向边、数向包含它的集合连边权为 000 的边,从所有包含 111 的集合开始跑最短路,最后的答案即为 mmm 值对应的点的最短路 −原创 2024-11-08 16:11:58 · 910 阅读 · 0 评论 -
2024 信友队 noip 冲刺 10.10
前缀和 + 二分即可,再考虑一下左右端点还在睡觉的情况。printf观察到我们并不关心i点被哪个特殊点覆盖,而关心走到i时最多还剩下多少步用于继续扩展。我们以每个特殊点为起点、开始的权值为hi;将边权设为−1,然后跑最长路(此时可以用 Dijkstra 求解,负权最长路就是正权最短路)即可。printf。原创 2024-11-08 20:30:00 · 1089 阅读 · 0 评论 -
2024 信友队 noip 冲刺 10.8
考虑一个数字能被选择的条件。假设我们已经把 kkk 个数选进答案子序列中,那么对于没选择的数 iii,它能被选当且仅当 [i,n][i,n][i,n] 中有剩下没选的所有数字。我们考虑对于每个 iii 求出 [i,n][i,n][i,n] 中数的种类数 f(i)f(i)f(i),然后从大到小枚举 kkk,每次找到一个满足 f(i)=kf(i)=kf(i)=k 的 aia_iai 最小的数作为答案的下一项。显然 f(i)f(i)f(i) 从后往前单调不降,那么我们可以求出最靠右的 f(i)=kf(i)=kf原创 2024-11-08 16:07:39 · 938 阅读 · 0 评论 -
2024 信友队 noip 冲刺 10.4
赛时糖丸了,推了一个关于平方的做法,差点就被我发现了。显然最小的取法就是从每个集合中取一个最小值求和,我们设这个最优值为。子序列(可能往上往下有出入,大概长这样),于是我们考虑把。从小到大排序,每个集合内部按从小到大排序。考虑其可能的后几个略小一些的状态。的暴搜做法,然后又拼了一个乱搞做法:每次比较。循环组成的串,然后在对应位置插入若干个。产生的增量,哪个多操作哪个,最终骗到。然后一种可行解是随机化,正确率还挺高。的元素个数,从大往小考虑,若。要求按顺序操作,求操作后最大的。大的值,最初始的状态即为。原创 2024-10-26 01:15:00 · 970 阅读 · 0 评论 -
2024 信友队 noip 冲刺 10.1
给定一个长度为n的数组aQ次询问每次询问给出LR,求所有LR的子区间lr满足从al到ar中至少分别有一个奇数和一个偶数。nQ≤5×105。这题的部分分高达90pts,一个OnQ的暴力和一个至多一个奇数或一个偶数的特殊性质。暴力就考虑对于i∈LR,以i为左端点的区间有几个,可以发现若i为奇数那么左端点必须在一个偶数之前,i为偶数同理。暴力就做完了。特殊性质分显然左右端点必须在那个特殊数字的左右两边。原创 2024-10-25 11:07:13 · 1040 阅读 · 0 评论 -
2024 信友队 noip 冲刺 9.28
的小数据分和两档特殊性质,分别是单点修改和单点询问。很小可以直接枚举每个子串的和,然后扫一遍即可。的常数,用来处理循环节。线段树上每个点记录一下是否进入循环节和循环节的数组即可。,需要选择若干段不相交子串,使得每个子串的和相等。的路径(可以走重复的点和边),将路径上经过的边的值依次连接可以组成若干。会出现循环节,然后就可以用线段树维护了,循环节长度可以打表发现是。套路:把买和卖放到一起做,对于买的情况价值取负。的复杂度的做法,但是没有想出来,最后写了一个。相等的情况,显然应当先考虑买后考虑卖,痛失。原创 2024-10-26 00:00:00 · 961 阅读 · 0 评论 -
2024 信友队 noip 冲刺 8.31
赛时打了个看起来很假的 O(n2)O(n^2)O(n2) dp 拿了 40pts40\mathrm{pts}40pts:令 f(i)f(i)f(i) 表示使 [1,i][1,i][1,i] 合法的最小操作数量,转移时考虑把之前某个操作延长到自己使自己可以少操作几步,对于中间的部分直接按照不考虑时针转过头的情况计算最小步数。一开始打的暴搜根本跑不出来。同机房 AC 的非常玄学,挂的也非常玄学,令 f(i,j)f(i,j)f(i,j) 表示先使第 iii 个钟转了 jjj 次,然后再考虑合法的最小操作数,原创 2024-10-25 11:01:56 · 1008 阅读 · 0 评论 -
2024 信友队 noip 冲刺 8.30
观察到 Alice 非常被动,没有绝对的最大化策略,于是被 Bob 薄纱,只需考虑最小化即可,原题从博弈论变成两两分组使得异或值的最大值最小。贪心地从最高位开始考虑,然后在 01Trie 上神奇分类讨论。操作增长速度最快,发现是斐波那契数列,一开始想的是构造数列的前两个元素,于是套了个 exgcd 求最小整数解,然后错完了。一定会取到最优解,从小到大排序,求个后缀和,分成。的项的和,交替过程中预判和讨论一下是否需要插入。操作进行微调,发现在交替过程中插入一个。个元素,是正是负,再设一个。原创 2024-10-25 15:30:00 · 1011 阅读 · 0 评论 -
2024 信友队 noip 冲刺 8.29
由于每个点连出去两条边(正反各一个数字),最终的图一定由若干个不相交的环组成,环与环之间独立,只需计算每个环的答案然后乘起来即可。注意到环的答案只与环的大小有关,设大小为。等情况除外,特判即可),因为删掉一个元素后立即会出现两个相邻且相等的数。,我们将它所在的两张(或者一张,此时为自环)卡连一条边。对于建出的图,边代表数字,点代表卡牌,的限制,我们找到一段后缀,使得后缀和除以后缀长度最大,然后把。的答案都能取,维护一个前缀和即可。的数则之后的答案将这个数的后一位视为。为状态的 dp,发现会重,糖丸了。原创 2024-10-25 10:59:34 · 903 阅读 · 0 评论 -
Day1 计数类dp 知识点 & 部分例题
相当于计数、数方案数的 dp,其中概率就是总方案数合法方案数。原创 2024-07-11 11:59:06 · 477 阅读 · 0 评论 -
题解:P3569 [POI2014] KAR-Cards
完全可以把交换操作看作两次单点修改,每次只需要考虑一个元素的变化对答案的影响即可。对于一个区间中的元素,显然开头的数越小,该区间能够单调不降的概率越大。次操作,每次操作会交换两个元素的位置,且都需要回答:是否存在一种方案,使得每个元素各选择一个权值后,组成的序列从左到右单调不降。维护这两个值(直接存末尾卡牌选择的值)。在建树、修改的时候用子区间信息进行更新。合并两个相邻区间的信息时,我们枚举左区间。末尾选择的数尽可能小。最终该区间的末尾取决于。,考虑线段树,对于区间。,两个子区间的编号为。原创 2024-06-22 11:42:54 · 1074 阅读 · 0 评论 -
题解:CF1019D Large Triangle
条连线按照斜率从小到大排序,然后从小到大枚举,这样任意两点旋转后的横坐标大小关系恰好会变化一次。枚举连线的过程中每次交换两个端点,再在连线的两侧(正负)进行查找即可。个点,海伦公式判断面积是否相等。优化思路即为:对于先枚举的两个点。个点使得它们组成的三角形面积为。就要满足其到这条连线的距离为。个平面上的点,求是否存在。的距离有序,那么就可以。的复杂度二分了,分成在。考虑将所有点进行旋转,使。需要输出三个点的坐标。然后做法就出来了:先把。之上、之下两个部分。原创 2024-06-22 11:40:43 · 979 阅读 · 0 评论 -
P4097 【模板】李超线段树 / [HEOI2013] Segment 题解
这样我们就完成了对完全覆盖的区间的修改。对于其他部分覆盖的区间直接递归左右儿子解决即可。对于查询操作,将自己的答案与左右儿子取个。左右的区间另称为左/右区间),可以发现一定有一个子区间被左或右区间完全包含(浅蓝色被右区间包含),即在两条线段中,肯定有一条线段。我们考虑线段树上被两条线段完全覆盖的一个部分为。)先被加入,显然整个线段在当时就是最优的;因为每次修改操作都需要递归左右儿子,所以加线段的复杂度是。此时深红色的部分没有受到影响,只可能成为右区间最优的线段)。其中,红色线段(记为。原创 2024-05-26 09:48:57 · 716 阅读 · 0 评论 -
题解:CF1016E Rest In The Shades
预处理出挡板长度的前缀和统计这个点的贡献即可。处于阴影中的总距离(深红色线)。的连线被某个挡板相交或接触时,我们说。移动过程中处于阴影内的总时间。个平面上的点,求出这些点在。不相交、不接触的挡板,第。中挡板的占比后,就可以通过。坐标排序,两次二分求出。(灰色、青色部分)求出。原创 2024-05-26 03:30:00 · 456 阅读 · 0 评论 -
题解:CF1370F1 The Hidden Pair (Easy Version)
你可以向评测机询问一个点集,评测机会回答点集中与。的点集,按照上述两种情况二分,最终可以得到深度较大的。距离和最小的点,以及这个距离和。实现没什么难点,注意每次询问/回答都要。每一轮都询问一次深度为。对于第一种情况询问到的点都可能是。个点的树,需要得出树上两个点。个点进行询问,这样就可以得到。为树根,那么对于树中深度为。之间的距离,和一个必定在。中深度较大的点,不妨令。为树根,然后询问深度为。考虑二分,区间下界为。的点集,得到的点即为。原创 2024-05-25 20:29:01 · 443 阅读 · 0 评论 -
题解:CF1370F2 The Hidden Pair (Hard Version)
你可以向评测机询问一个点集,评测机会回答点集中与。的点集,按照上述两种情况二分,最终可以得到深度较大的。距离和最小的点,以及这个距离和。实现没什么难点,注意每次询问/回答都要。每一轮都询问一次深度为。对于第一种情况询问到的点都可能是。个点的树,需要得出树上两个点。个点进行询问,这样就可以得到。感性理解一下,因为我们要处理出。为树根,那么对于树中深度为。较深的一个点,所以深度小于。之间的距离,和一个必定在。的点都不会是那个较深的点。中深度较大的点,不妨令。为树根,然后询问深度为。的点集,得到的点即为。原创 2024-05-25 20:28:05 · 472 阅读 · 0 评论 -
题解:P9535 [YsOI2023] 连通图计数
时的树,树的数量也相同。现在考虑这挨在一起的两个环的方案。我们可以将这两个环拆成类似韦恩图的样子,分为左边环独有部分、左右环公用部分、右边环都有部分三条链。中挑两个点出来,之后的每个点都选择两个位置放在中间,不合法数量(即之后的所有点全都放在一条链上)即为。在树中无连边(即两个环没有公共点,否则就变成一个环了)。次,考虑到两个环位置可以调换但属同一种情况,所以答案要除以二,即为。区别在于,此时只能算出两个环的大小之和,答案类似,即。使用容斥,所有合法的树的数量等于所有减去不合法,即为。原创 2024-05-25 20:27:27 · 355 阅读 · 0 评论 -
2024信友队智灵班春季 Test1 总结
则它们会被一起删除,环会重新接上,这个过程一直重复直到不存在可以删除的元素。这很好想:如果某一时刻还剩下的元素没有被湮灭完,那么此时加入肯定会代替后面的某个元素进行湮灭操作。个打开,如果没有看见自己编号的纸条则所有人都将被处决。计算时从右往左计算(矩阵乘法的结合律),可以降低每一轮乘法的时间复杂度。压根不觉得这个提示是最优策略,以为只是针对于该样例而言可能的一个策略。号盒子,然后根据看到的纸条编号打开对应编号的盒子,直到。),宗旨即为:构造一个答案矩阵和转移矩阵,通过转移矩阵的。的值,则转移矩阵也相同。原创 2024-04-20 08:31:24 · 2517 阅读 · 0 评论 -
[CF825F] String Compression 题解
其中出现循环的子串压缩后长度为:循环节出现次数十进制下的位数+循环节长度,无循环的串也需要压缩。求压缩后的最小长度。这个部分完全压缩后的长度,求法即为:对于每个。分成若干个子串,这些子串全部完全压缩。,注意判断是否能够整除。中无小的循环节(即循环节长度为。个字符进行压缩的最小长度。个字符删除后跑 KMP,求得的。,对其执行 KMP 算法后得到。数组,可能的最小循环节长度。串进行压缩可以认为是把。原创 2024-04-11 18:55:33 · 1066 阅读 · 0 评论 -
Day1 省选衔接题 思路总结
在任意一种分隔方案中,都一定存在一种矩形放置顺序,使得每次放置之后,分界线仍然是单调的。所以即使是仅考虑单调的分界线状态,也一定可以搜索到所有状态,这样可以简化状态降低复杂度。然而这样复杂度仍然较高。原创 2024-04-10 21:19:58 · 938 阅读 · 0 评论 -
P4784 [BalticOI 2016 Day2] 城市 题解
边权非负,显然最终选择的边组成一棵树,否则去掉环上一条边后答案更优且不影响连通性。于是本题转化为最小斯坦纳树的模板题,纯粹的模板题在。就可以作为第二种情况的一个起点。每一轮都以这些有值的点为可能的起点跑最短路即可。对于第一种情况,因为我们按照二进制思想压缩状态,所以对于状态。前者直接循环计算,后者可以用类似于最短路的松弛操作计算。点两两可达的情况下选择的边边权和的最小值。条边的无向图,边有正边权。个点被包含)时的答案。,如果在第一种情况的转移完成后,,即连通自己不需要连其他边。个点连通的最小斯坦纳树。原创 2024-03-24 20:13:29 · 1122 阅读 · 1 评论 -
P3639 [APIO2013] 道路费用 题解
最小生成树中这个连通块的部分选择的边就是不变的。所以我们就可以把这么多个连通块缩成一个点,每次跑最小生成树就不再需要考虑这个点的内部边的情况了。中的哪几条边最终被放进了最小生成树中,然后算出这几条边边权最多可以取多少,使得这些边全部都在树中。 条边的边权,使得这些边产生的贡献最大,求这些边的贡献之和。中边的贡献,所以每个连通块内部的边的贡献是不重要的,只需要记录连通块内点的点权之和。中的边后再加的边就是组成连通块的边,对于这些边在合并完。中的某几条边不在最小生成树上,那么说明有更优的。原创 2024-03-20 21:32:32 · 1059 阅读 · 1 评论 -
P2934 [USACO09JAN] Safe Travel G 题解
假设需要经过两条及以上的非树边,那么总是有至少一条非树边可以用几条树边拼起来(否则这条非树边就应当是树边)。可以脑补一下走多条非树边的情况,一定存在一个更优的只走一条非树边的路径。个人认为这个并查集更像是记录每个点最近的没被计算过贡献的祖先,加快了在环上跳的过程;从小到大进行排序,每次遍历一遍环上没有被确定答案的点并更新答案,这样可以保证每个点被最优的非树边计算答案,不会重复计算。在环上的点的答案被更新以后,我们把它们全部归到一个并查集里,根节点为。,如果将其加进最短路树中,则会产生一个环,环上的点为。原创 2024-03-18 21:29:45 · 1003 阅读 · 1 评论 -
P5629 【AFOI-19】区间与除法 题解
的性质,才可以用两段有重复部分的区间信息合并出大区间的信息。也就是说,它们都可以用相交的两区间的并,推出大区间。进制下为自己的前缀,则后面的求解中肯定会使用前者而不是自己,此时就可以直接退出了。进制下位数越少的原数,它能消除的数越多。并向下取整后与一个被称作“原数”的数相等,则说这个数能被这个原数消除。中的数用了哪些原数去消除尽可能多的元素,最后也就可以。,如果在插入过程中发现了一个原数的结尾,即有一个原数在。我们把所有的原数按照。,这提示我们可以把原数的使用信息用一个。的询问,求在用原数尽可能多的消除。原创 2024-03-04 20:47:13 · 2407 阅读 · 1 评论 -
P4082 [USACO17DEC] Push a Box P 题解
很显然重点落在箱子而不是人的移动上,但箱子的移动依赖于人的移动,人的移动又受到箱子的阻挡。在靠近到箱子的四周时才会对箱子的位置造成影响,所以判断状态是否已经入过队,我们只需记录箱子的坐标和。一个人能推动地图中的箱子,当且仅当他在箱子旁边,且箱子在按照人向箱子移动的方向移动一格后不会卡墙里或。的上面把箱子往下推,则必须有一条不经过箱子的路径使得。的左边把箱子往右推,则没有不经过箱子的路径使。在不经过箱子的情况下,能到箱子上下左右的哪里。的另一面去推动箱子而不使箱子移动,当且仅当。在箱子的哪一面即可。原创 2024-03-03 20:39:39 · 985 阅读 · 0 评论 -
P6381 『MdOI R2』Odyssey 题解
和一张有向无环图,边有边权和长度,求最长的完美路径的长度(路径上边的长度之和)。 取模,则可以在质因数分解的过程中,快速计算出每条边走到下一条边的边权的值。为边的长度(和边权是两个量)。的边(已经对所有质因数的指数取模后的边权)来到点。,和对所有质因数的指数取模后当前边的边权。 进行质因数分解后对应质数的指数和为。转移,先求出当前边的边权的对应边权。考虑分析完美数对的性质。计算最长完美路径的长度,且原图是张。 的倍数,则一定存在正整数。的特判也可以看代码中的注释。的求法可以参考代码中的。原创 2024-03-03 10:21:01 · 941 阅读 · 0 评论 -
P7482 不条理狂诗曲 题解【纯思路】
前两种子区间可以分治递归求解。对于第三种子区间,我们令。选择若干不相邻的数的和的最大值。,我们可以用类似 dp 的方法预处理出。求所有区间的权值和提示我们使用分治。,此时当前区间产生对答案的贡献即为。另一种情况是对称的,处理方法相似。排序,使用双指针计算对应贡献。本文章仅提供解题思路!原创 2024-02-28 17:24:31 · 839 阅读 · 0 评论 -
P9361 [ICPC2022 Xi‘an R] Contests 题解
场比赛的前缀并”来描述下一步能到的所有选手,于是模拟过程中我们可以只维护。步能到达的所有选手。注意到我们永远可以通过“暴力的做法是从小到大枚举步数,并维护不超过。大致题意见题目描述,这里主要解释一下选手。考虑使用倍增加速,预处理每个跳。虽然在第一场比赛中选手。原创 2024-02-28 17:21:32 · 1099 阅读 · 0 评论 -
P8207 [THUPC2022 初赛] 最小公倍树 题解
内的点所构成的无向图的最小生成树中边的边权和。所以我们可以找到这个最小的。,于是考虑枚举这个公因子。最后跑最小生成树即可。两两建边显然不行,考虑优化建边。为确保连通,还需要连一条。尽可能大的点对连边,也就是说。,根据调和级数,最后边的数量。标记为起点,向之后在。,总时间复杂度大约在。原创 2024-02-28 17:18:51 · 932 阅读 · 0 评论 -
P4652 [CEOI2017] One-Way Streets 题解
所以我们考虑把所有的边双缩成一个点,每一个边双中的边都标记为无法定向。这样原来的无向图就变成了一棵树,否则由于是无向图,一定还存在边双连通分量,可以进一步缩成点。首先观察到无向图中的边双连通分量中的边无法被定向。路径中经过一个边双的部分,一定可以像下图一样以另一个方向绕过这个边双。,则说明是它的父亲指向该点;计算每条边的方向时,树链剖分显然可行,但我们也可以采用树上差分。需要求出每条边是否能被确定方向,如果能确定方向则求出它的方向。将每个结点的儿子的差分值累加至父亲的差分值里。,则说明是该点指向它的父亲;原创 2024-02-27 18:46:36 · 925 阅读 · 0 评论 -
P1752 点菜 题解
根据题意,一个可行的贪心方案是:总是让有限制的人群优先选择菜,且限制宽松的人总是吃掉条件更苛刻的(例如更贵的、更难吃的)菜,从而让限制较大的人产生更大的贡献。考虑完所有的菜后,如果还有挑剔的人没有被考虑,此时队列里的菜他们肯定都能吃,所以让他们去尽可能吃光队列里的菜。个人,当前队列里的菜都是他能吃的,后面的人也能吃。贵的菜,而前面的人又都吃了尽可能多的才,则说明这道菜只能由普通人吃,将其弹出并记录,然后考虑队列中第。考虑完所有贫穷的人后,队列里剩下的菜和被记录的菜由剩下的。道菜有美味值和价格两个参数,原创 2024-02-27 18:32:54 · 1109 阅读 · 0 评论 -
P5522 [yLOI2019] 棠梨煎雪 题解
因为不会有任何一个字符串匹配该区间。如果确定为某个数,则这一位只有一种可能;否则这一位有两种可能。根据乘法原理,如果有。表示这个区间的信息不合法。转移时从左右孩子进行一下位运算合并。如果两个孩子已确定的。的串当且仅当它们长度相同且对应位置均可匹配。位置有冲突则区间不合法。个位置有两种可能,则本次询问的答案为。,所以一个串每个位置的信息可以用一个。内每个位置的信息也可以用这样一个。个字符,一共有四种可能:确定为。个字符串,每个字符串仅含。考虑对于一段所有字符串的第。分别可以和自己匹配,原创 2024-02-27 18:29:17 · 1034 阅读 · 0 评论 -
Progressions Covering 题解
此时发现我们只需要修改两处二次差分后的增加量数组,就可以实现区间加公差为一的等差序列。我们选择一个前面所说的最优区间进行操作,直到该元素满足条件。注意到我们是从后往前进行操作,所以我们可以动态的计算当前元素增加的量。的操作区间尽量末尾处。这样操作可以使操作区间产生的影响最大化,且。不会对当前和还未被扫描的元素产生影响,所以我们不用太在意这个。,即没有满足条件,则最优的操作方案显然为将。维护区间加的过程考虑差分。个元素,且该元素没有满足条件,的区间,区间左端点大于。因为我们是从后往前做的,原创 2024-02-27 18:25:25 · 968 阅读 · 0 评论 -
[ABC254Ex] Multiply or Divide by 2 题解
数组中相同元素出现次数相同的最少操作次数,若无解则输出。这个过程可以用优先队列进行维护。所以我们使用贪心算法。考虑两个数组的最大值。数组执行的操作一转化为对于。进行操作一,等价于将。于是我们便可以把对于。原创 2024-02-27 18:12:29 · 940 阅读 · 0 评论
分享