CF1820 & 1819 题解

Div2 A

答案取决于 _ 连续段长度,有一些细节,比如什么时候答案要加一减一,以及字符串是单独的 ^

Div2 B

首先先把全 1 串给特判掉。
记将字符串视为首位相接的环的时,最大 1 连续段长度为 x,答案为 x+12(x2+1)

Div2 C & Div1 A

对是否存在数 mex+1 分类讨论

  • 如果有,那么记录最左边的那个位置为 l,最右边位置为 r,操作即为 set(l,r,mex),同时判断 [1,l)(r,n]mex 是否是原来那个/
  • 否则,直接将一个大于 mex 或者重复出现的数改为 mex

Div2 D & Div1 B

首先注意到答案最多为 2
考虑第一刀纵切和第一刀横切,若先纵切,那么 h 即为最大的 xiwxi=hyi 加上剩余矩形中最大的 yi。类似的,可以算出先横切的答案。
固定了矩形大小之后,判断合法性。考虑当前这刀切什么,必然是一个 xy 等同于当前 hw 的矩形,但是不能同时相等(除去最后只剩下一个矩形)。直接找到一个矩形,剩余的作为子问题递归完成。

Div2 E & Div1 C

观察到有解当前仅当是链上挂叶子,证明考虑从一个深度超过 1 子树跳到另一个深度超过 1 的子树,那么再跳就跳不出来了。
实现上求出树的直径,然后黑白染色,从左开始每次走白点到尽头再走黑点回来。

Div2 F & Div1 D

fi 表示最小的 j 使得 ji 的集合可以全部保留,考虑转移:

  • ki=0,此时 fifi1
  • 考虑它前面最近的和他有交的集合 Sp,若不存在或者 p<fi1,那么 fifi1
  • 否则要找到一个 qp,使得 q 后集合清空,然后 fiq+1

这启发我们找到那些位置之后可以被清空:

  • ki=0 或者 fi1ji,kj=0),那么可以实现
  • 否则依旧考虑它前面最近的和他有交的集合 Sp,若 p 存在并且 $p \ge f_{i-1},那么可以实现,否者不能。

set 维护所有可以的位置,对 f 的转移等同于在其中 lower_bound

Div1 E

考虑这个询问操作能告诉我们什么:
如果当前图(只考虑能用的关键边,下同)联通,那么答案恒为 1,否则有概率为 0
考虑我们取出一条边,将一个连通块分开,如果这是一个桥,那么分别查询 uv k 次,就有可能查出 0。当 k=20 时,概率趋近于 100%
接下来我们只要对每条边进行这个操作,我们先求出一个关键边的生成树,那么每次只要断掉生成树的一条边,接上考察的一条边,如果还联通说明它是关键边。
现在问题是如何求生成树。
也很简单,扫描每个边,把不是桥的边堵上就好了。

Div1 F

考虑把边的变换建出来,是一个分型的形式。
相当于一个 n 阶图是由正方形,然后四个角各塞一个 n1 阶图。
所以每种的答案应该是一样的,考虑把关键串放到 trie 上维护,相当于现在要遍历所有关键点。
定义 fi,x,y 表示现在是第 i 阶的图,要从字母 x 出发,走到 y,同时遍历所有关键点的最小值,最大值同理。转移容易在分形的图上看出。
再定义一个环的答案,即最终答案,每次修改类似于线段树,在回溯时 pushup
特别的,当只有一个或两个串时最小值会寄,特判一下。

posted @   Matutino_Lux  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示