2023.8.4 cmd杂题选讲
数据结构
P4062 [Code+#1] Yazid 的新生舞会
定义出现次数超过区间长度一半的众数为“强众数”
我们可以枚举强众数
记
注意到,
按照
假设当前这段等差序列为
设
于是问题转化成区间加一个数和求二阶前缀和,将区间加一个数转化成差分数组
现在思考如何维护三阶前缀和。设
用树状数组维护
P7476 「C.E.L.U-02」苦涩
标记永久化的好题
每个节点维护一个堆和一个最大值标记
操作
对于完全覆盖的区间,如果节点堆顶等于
否则的话,首先要下传标记。如果该节点堆顶等于
复杂度不太会算,但是说是
P5344 【XR-1】逛森林
倍增优化建图,每个点向上的
这样点数是
考虑到题目只要求跑最短路,所以可以像
CF348C Subset Sums
遇到这种比较难维护的数据结构,又有
对于
对于大集合,修改直接打标记,并计算对其它大集合的贡献。查询输出标记总和+原和即可。时间复杂度
ビ太郎のパーティー (Bitaro's Party)
还是根号分治。
对于
对于
复杂度
图论
[AGC011C] Squared Graph
考虑
对于原图,发现若一个连通块存在奇环,则任意两点间有一条长度为奇数和一条长度为偶数的路径。否则可以二分图染色,颜色相同的点之间路径长度为偶数,否则为奇数。
将原图所有连通块分为三类:奇环、二分图、孤立点。分别记数量为
-
对于一个奇环来说,自己与自己匹配产生
的贡献。与其它奇环匹配可以产生 的贡献。 -
对于一个二分图,自己与自己匹配产生
的贡献(颜色相同/不同),与其它二分图匹配产生 的贡献,与奇环匹配产生 的贡献。 -
对于孤立点,自己与自己匹配产生
的贡献,与其它所有点匹配产生 的贡献。
时间复杂度
CF741C Arpa's overnight party and Mehrdad's silent entering
容易想到二分图染色,在情侣之间连边。问题是三个人的限制如何处理。
我们发扬人类智慧,钦定
然后跑染色即可。
CF1407E Egor in the Republic of Dagestan
容易想到从
CF1515F Phoenix and Earthquake
将原题看成是建生成树的过程。当
证明:使用归纳法。我们任取一棵生成树
-
若
:则此时直接建 这条边,剩下的 棵节点的树有解。 -
若
:则对于除了 这条边的树 ,因为 减少了 , ,所以必定合法。那我们将 放到最后修建即可。
于是,我们用一个栈和队列维护答案即可。
P3573 [POI2014] RAJ-Rally
问题的关键在于原图是一个 DAG,这启发我们按拓扑序考虑每个节点。将拓扑序小于
一开始将所有所有点都放在集合
CF986C AND Graph
CF605E Intergalaxy Trips
设
假设已经完成转移的点为
但此时我们计算的
上述转移方程就变成
使用 dijkstra 即可。
CF1559D2 Mocha and Diana
猜想答案等于
我们随便拿出一个点,假设是
其它
P6811 「MCOI-02」Build Battle 建筑大师
对原序列
[AGC006C] Rabbit Exercise
对于每次跳跃,
这个式子很复杂,于是我们可以考虑差分,设
所以每次操作相当于交换相邻的差分数组。记录交换的映射,类似快速幂可以做到
CF1153F Serval and Bonus Problem
先将线段长度除以
那么其实就是求出每个点的被
然后我们惊奇地发现这可以 DP,设
最后我们要求的就是
[ARC072F] Dam
没什么好说的,请看 题解【[ARC072D] Dam】。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?