合集-codeforces题解集1

摘要:题目: CF1916E Happy Life in University 链接: 洛谷 或者 CF 前置知识点: 线段树与HH的项链 先简单回顾下HH的项链这题怎么做的吧。先去掉莫队算法,因为这个不是最优的解法。来说说利用树状数组或者线段树怎么处理查询 \([l,r]\) 上的不同数的数目值。首先值 阅读全文
posted @ 2023-12-31 11:59 Athanasy 阅读(289) 评论(2) 推荐(4)
摘要:题目链接:CF 或者 洛谷 简单来说就是求 \([l,r]\) 这些点都存在的情况下,连通块的数量,看到七秒时限,而且每个点相连的边数很少,可以想到离线下来使用莫队类的算法解决 连通块问题,一般可以考虑使用并查集解决。对于并查集来说,它的增加是非常简单的,但删除是困难的,可持久化并查集时空常数都较大 阅读全文
posted @ 2024-01-03 11:06 Athanasy 阅读(80) 评论(0) 推荐(0)
摘要:题目链接:洛谷 或者 CF 比较朴素的题,首先观察题目条件: \[ i-n \le a_i \le i-1 \Rightarrow 1 \le i-a_i \le n \text{,所以易知 } i-a_i \text{ 必定是某一点} \]考虑构造题目所说 \[\sum_{i=x_1}^{x_{t 阅读全文
posted @ 2024-01-05 09:59 Athanasy 阅读(103) 评论(0) 推荐(1)
摘要:题目链接:洛谷 或者 CF 本题考虑转化为 cdq 分治模型 对于 cdq 分治来说,只需要考虑左边对右边的影响,那我们要考虑该怎样设置第一维度的左右对象。很显而易见的是抛开 \(q\) 限制而言,我们着眼于,如何让双方互相看到的严格条件转化为只需要关注单体看见。考虑什么情况下只需要一方看到对方,对 阅读全文
posted @ 2024-01-05 20:33 Athanasy 阅读(88) 评论(0) 推荐(0)
摘要:题目链接:洛谷 或者 CF 不是特别难的题,抽象下题意就是算区间次数出现的次数 mex 和带单点修改。看到范围 \(1e5\) 还带修改,传统的 mex 求法里貌似就莫队类算法好带修,考虑带修莫队。 然而涉及到 mex 问题,你可能不由自主地想到回滚莫队求 mex 只删不加的板子题:P4137 Rm 阅读全文
posted @ 2024-01-06 18:19 Athanasy 阅读(70) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 可以看到查询和插入就是李超线段树的基本操作,但在原有基础上多了一个删除操作,李超线段树不支持删除操作,但支持可撤销和可持久化,所以我们容易想到外层再套一个线段树分治即可。本题用可撤销就远远足够了,很好写。 具体的,我们读入所有操作,对于操作一,为当前下标线段读入它的 \( 阅读全文
posted @ 2024-01-12 16:58 Athanasy 阅读(130) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 一道经典的类型题,把这种类型的题拿出来单独说一下。 注意到问题中涉及到需要维护 \(a_{x+k\times step}\) 这样的信息,这样的信息很难用树型结构维护,比较容易用块级结构维护,我们注意到其实是每次这种步长 \(+step\) 的信息很难维护,我们考虑一类特 阅读全文
posted @ 2024-01-16 11:51 Athanasy 阅读(156) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 析合树真是连续段问题的降智神器 先看下题目的一些特殊性,每行每列恰好有一个棋子。考虑特殊性,\(n \times n\) 的棋盘,那么就该判断是否有 \(n\) 个棋子,容易观察到,也就是相当于每一行并且每一列都有一个棋子。而容易知道,这些棋子所在的行或者列拿出来应当是“ 阅读全文
posted @ 2024-01-21 09:45 Athanasy 阅读(80) 评论(0) 推荐(0)
摘要:题目链接:CF 或者洛谷 本题是可以用平衡树去做的,具体的为每个 \(k\) 开一棵平衡树去维护相对位置,而这种移动操作用平衡树维护又是很容易做到的,这种做法是双 \(log\)。在 \(1e5\) 的数据下,我们来说说好写的分块该如何去写。 黑色的代表一个块,考虑暴力修改情况,假如原来的数字为 \ 阅读全文
posted @ 2024-01-22 10:57 Athanasy 阅读(123) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 挺有意思的题,一开始看到了 \(start+k\times step\),以为是根号分治方向的题,结果发现这题还给了一个“重排”操作玩玩。所以这题其实算是结论题。 首先我们明确一点,最小操作次数,一定不会低于区间种类 \(cnt\) 的。因为我们观察到每次操作至多会减少一 阅读全文
posted @ 2024-01-22 20:55 Athanasy 阅读(64) 评论(0) 推荐(0)
摘要:两道基本一样的题: 题目链接: P2757 [国家集训队] 等差子序列 Permutation 链接:CF 或者 洛谷 等差子序列那题其实就是长度不小于 \(3\) 的等差数列是否存在,我们考虑等于 \(3\) 的是否存在就行,因为等于 \(3\) 长度的都不存在,更长的就不可能了,然后多了一个多测 阅读全文
posted @ 2024-01-23 20:54 Athanasy 阅读(59) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 前置知识点:平衡树合并: CF文章 与维基百科 看上去这题有很多人用线段树分裂与合并去做,其实这种需要分裂和合并的,我们用文艺平衡树去维护区间信息是最容易写的。 考虑本题的特殊性,值域并不是很大,所以其实我们可以为每种值开一棵文艺平衡树,而平衡树维护的值为下标序列,即对应 阅读全文
posted @ 2024-01-24 14:10 Athanasy 阅读(83) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 前置知识点:序列操作 本文关键词 约定俗称:因为频繁敲最长不下降子序列 \(LNCS\) 和最长不上升子序列 \(LNIS\) 太麻烦了,下文将 \(000011111\) 这种最长不降子序列用 \(LIS\) 描述,\(1111100000\) 这种最长不升子序列用 \ 阅读全文
posted @ 2024-01-25 22:59 Athanasy 阅读(101) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 首先基于一个事实,答案一定是生成树,显然,每次我们都需要连边,每次都会 \(-x\),那么一共会减少 \((n-1)\times x\),很显然的一个必要条件为: \[\sum_{i=1}^{n}a_i \ge (n-1) \times x \ 显然一定成立。 \]现在我 阅读全文
posted @ 2024-01-26 12:21 Athanasy 阅读(85) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 想了很久,然后想起做过的一道题:秃子酋长,一开始以为差不多,结果写着写着就发现不对劲了。最后写出了个神仙回滚莫队解法,感觉很妙,记录下。 进入神仙分析时刻 首先,我们来考虑一个事实,加上一个数以后,如果能找到它的前后驱,那么可以立马更新最优解,这个也即是瓶颈点。因为最优的 阅读全文
posted @ 2024-01-27 23:27 Athanasy 阅读(129) 评论(3) 推荐(1)
摘要:题目链接:CF 或者 洛谷 高分题,感觉挺有意思的题,值得一提的是这个题的 \(1\) 和 \(3\) 版本却是两个基础题。 一开始以为跟这道差不多:P8512 [Ynoi Easy Round 2021] TEST_152 题解。后面重新读了一下发现一个有趣的点: 也就是是说操作的 \(val\) 阅读全文
posted @ 2024-01-29 17:28 Athanasy 阅读(61) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 感觉很经典的题,而且给的 \(5e5\),虽然莫队之类的很好想,但完全没必要去考虑这类算法,这种数据范围常数又大又开盲盒。很显然的具有单 \(log\) 的算法。 回忆下经典问题 “HH的项链”。其实对于区间颜色数的方法网上已经总结的很全了,常见的无非就莫队,维护 \(l 阅读全文
posted @ 2024-01-30 17:07 Athanasy 阅读(51) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 并不是很难的题,关于颜色数量类问题,那么很显然,沿用经典的 "HH的项链" 思想去思考问题。由于涉及到了 \(k\) 个数的限制,我们观察到如果一个数在一个区间上有区间贡献: 其中 \(x_k\) 表示为当前 \(x\) 的第前 \(k+1\) 个数,换句话来讲,\(x_ 阅读全文
posted @ 2024-01-31 10:48 Athanasy 阅读(45) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 官解看上去挺智慧的,来点朴素的解法。我们来当做纯 ds 题去做。首先明确一点,图中若干个点关于最小连联通树的这个问题可以考虑 \(MST\),我们有一类东西叫 \(kruskal\) 重构树。这玩意其实只需要记住它的性质和建树方式即可,证明其实也是比较简单的,基于 \(k 阅读全文
posted @ 2024-02-01 12:02 Athanasy 阅读(88) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 这题很简单,看到颜色数,HH的项链?树,树上的HH的项链?带修,树上的镜中的昆虫?\(c_i \le 60\),噢,easy 了。 考虑一类信息,表示有和无,对于某种颜色来讲,\(0/1\) 表示无或者有,而或运算让我们从小区间的有无情况反映到大区间的有无情况。一种暴力的 阅读全文
posted @ 2024-02-02 13:24 Athanasy 阅读(98) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 感觉很多人写太复杂了,其实感觉这题性质很好的。。询问是否可以分为三段 \(max_1=min_2=max_3\)。考虑枚举 \(max_1\),由于后缀 \(max_3\) 具有单调性,所以我们可以双指针轻松拿到这样一个模型: 因为后缀 \(max\) 具有单调性,通过双 阅读全文
posted @ 2024-02-03 18:28 Athanasy 阅读(44) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 比较不错的题,出现奇数次出现的这种问题,比较容易想到一种运算,那就是异或和运算。 如果一个区间上一个数出现偶数次,则它对于异或和的贡献为 \(0\),那么很显然,我们维护下区间异或和即可判断一个区间上是否存在出现奇数次的数。然后我们注意到 \(1 \oplus 2 \op 阅读全文
posted @ 2024-02-08 21:49 Athanasy 阅读(80) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 本题拓扑排序不再赘述,来说说字符串哈希怎么做这题。 本篇以另一种角度剖析题目背景,并不追求最优,例如有些地方其实可以暴力判断,主要以构造的角度阐述,顺便感谢灵茶山的朋友的讨论。 结论 三个串及其以上必定能构造出最初的那个串。 下面进行证明: 首先一个串,显然有多种可能,我 阅读全文
posted @ 2024-02-14 15:44 Athanasy 阅读(77) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 比较经典的题目 看到存在随机数据以及区间赋值先别急,我们发现第四个操作是很难办的,第四个操作貌似只有暴力才好做。这个时候我们可以考虑使用珂朵莉树来做,这题也是珂朵莉树的出处。使用平衡树去写珂朵莉树的话,那么随机数据下,连续段的期望为 \(\log{n}\) 个,所以使用平 阅读全文
posted @ 2024-02-15 22:20 Athanasy 阅读(65) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 常见知识点组合经典题。 首先,一眼数位 dp 类型题,考虑需要处理些怎样的判断合法数位信息。 经典操作 对于跟整除有关的判断,数位 dp 为了减少使用空间,都可以考虑记忆化模数减少空间开销。 对于整除若干个数,即整除这若干个数的最小公倍数即可,是一个非常常用的结论,证明也 阅读全文
posted @ 2024-02-16 16:20 Athanasy 阅读(112) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 本题难点在于换根 LCA 与换根以后的子树范围寻找,重点讲解 先说操作一,假如原根为 \(1\) 变为了 \(x\),又变为了 \(y\),那么其实 \(y\) 和 \(x\) 都可以看做由 \(1\) 变化而来的,即 \(1 \rightarrow x\) 与 \(1 阅读全文
posted @ 2024-02-23 17:36 Athanasy 阅读(112) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 注意一些计算即可 \(期望=概率\times 出现次数\)。 \(dfs\) 一个点,会 \(dfs\) 完以这个点为根的子树,再 \(dfs\) 下一个兄弟节点为根的子树。 对于两个兄弟节点而言,它们的相对 \(dfs\) 序仅有两种,谁前谁后。 对于本题而言,优先关注 阅读全文
posted @ 2024-02-28 12:42 Athanasy 阅读(54) 评论(0) 推荐(2)
摘要:题目链接:CF 或者 洛谷 比较朴素的题,注意到这个涉及到子树变化,我们考虑优先处理出 \(dfs\) 序,方便处理。 注意到第一个问题较为繁琐,我们着重解决下第一个问题。在树上问题,我们这种间隔点常常使用 \(deep\) 进行区分。 根的 \(deep\) 为奇数,那么对自己子树范围内的奇数 \ 阅读全文
posted @ 2024-02-29 09:48 Athanasy 阅读(110) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 关于 \(mex\) 问题是一个比较久远的问题,有很多经典的方法去解决。本题的 \(mex\) 是从正整数开始的,不要忽略掉。 来讲讲常见的两种解决方案,首先回到题目所问,如果我们暴力地询问: \(1,2,3,4,.....mex\) 是否都能由原数组构造出来,对于 \( 阅读全文
posted @ 2024-03-08 12:39 Athanasy 阅读(92) 评论(0) 推荐(2)
摘要:题目链接:CF 或者 洛谷 不是很难的题,但在这里提供一个动态开点线段树怎么卡空间卡过去的极致空间处理技巧 全局 \(mex\) 问题,常见的做法就是维护权值树,然后找第一个没有权值的点,可以维护 \(\min\),但本题存在第三个操作,所以不能再去传统地维护 \(\min 或者 \max\) 去辅 阅读全文
posted @ 2024-03-20 22:08 Athanasy 阅读(100) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 关于非随机数据的颜色均摊是 \(O(n)\) 的,在往期文章中已经提过。本题需要考虑一下关于操作二的一个影响怎么进行处理。其实这个东西我们可以类似标记永久化的思想去开一个数组记录 \(tag[color]\) 表示这种颜色最终需要加多少。 解下来我们要来考虑一个问题,如果 阅读全文
posted @ 2024-03-21 17:03 Athanasy 阅读(56) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 视频讲解 本题挺有意思的,我们观察到 \(\le k\) 这个限制使得我们可以将原序列进行分组,把 \(\le k\) 的限制的元素放在一组中,那么根据题意,这组当中任意元素之间都是可以互相交换的,包括系统用品。那么假设一组中有 \(x\) 个自身的物品,\(y\) 个系 阅读全文
posted @ 2024-03-22 20:34 Athanasy 阅读(78) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 首先观察到题目的修改 \(x \rightarrow y\),是每个位置的 \(x\) 都要变,那就显然的拆位去算每一位的贡献。当然,你又发现 \(x \rightarrow y\),这玩意属于值为 \(x\) 的位变化成 \(y\),那么这个和普通的拆位区别就在于这是维 阅读全文
posted @ 2024-03-23 15:31 Athanasy 阅读(91) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 对于绝对值的几何意义来说,这题是在直线上的两点间的距离,为了总的距离和最下,首先最好让它们两两之间最好都紧挨着。 由于询问的是 \((i,j)\) 不重不漏的对有关,即 \((i<j)\ +\ (i>j)\ +\ (i=j)=all(i,j)\),又因为,\((i,j)\ 阅读全文
posted @ 2024-04-04 16:09 Athanasy 阅读(81) 评论(0) 推荐(0)
摘要:题目链接:CF 或者 洛谷 注意到总字符串长度不超过 \(1e6\),对于两个串之间找前后缀匹配,只要能暴力枚举长度,\(check\ 为\ O(1)\),那么最后显然线性复杂度。可以考虑 \(kmp\),也可以考虑字符串哈希,最好上双哈希,然后拼串显然是在尾部继续添加新的前缀哈希,这个需要添加的串 阅读全文
posted @ 2024-04-06 15:01 Athanasy 阅读(64) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 给个莫反题解,讲讲常规套路 题目要求满足没有 \(a_k \mid a_i 与 a_k \mid a_j\) 的 \((i,j)\) 的对数,显然即不存在 \(a_k \mid \gcd(a_i,a_j)\)。稍微拓展下,如果不存在整除多个数,那么显然不整除它们的 \(\ 阅读全文
posted @ 2024-05-17 13:27 Athanasy 阅读(76) 评论(0) 推荐(1)
摘要:题目链接:CF 或者 洛谷 解题思路 这题放 \(F\) 虚高了。做法很多,讲一个比较直观的前提想法: 我们定义个辅助数组 \(v\),满足 \(v[i]=a[i] \ge a[i-1]\),那么一个直观的想法: \(v\) 数组可能长这样:\(11110010110001111\)。我们需要做的很 阅读全文
posted @ 2024-06-26 09:43 Athanasy 阅读(130) 评论(0) 推荐(0)