写在前面
这里是出题人 & 组卷人 。
首先是关于题目难度方面,这一场强度是非常逆天的,整题难度非常高,并且没有太多水题。个人区域赛说是。
最开始的题有一大堆数论/数据结构/结论,非常恐怖。CN刻板印象这一块,另外不要真的变成 THUPC 了啊喂!
后来用很多其他部分知识点的题替换掉之后,知识均衡度才能算是合格,也算是稍微减轻了一点点难度(微乎其微),但强度依旧逆天。
🥺🥺大家骂轻点🥺🥺
:来自
大人的评价:
然后数据部分: 相邻消除这道题,由于出题人忘了放极限数据,导致一开始放过了一车
的做法,好在才开赛没多久,大约在开赛半小时时修复了数据。
🥺请大家狠狠拷打 喵🥺
另外一个 :由于开线下赛的时候漏了一个题,导致此题变成同步赛专享防
了。
唉唉,不过好在比赛还是顺利办完了。
预测难度
按照同步赛题目编号:
:
、
:
、
、
:
、
、
:
、
、
:
、
实际难度
按照同步赛题目编号:
:
、
:
、
、
:
:
、
、
:
、
、
、
solution
A 相邻消除
我们定义 表示数组
经过彻底化简后的结果。
根据拼接逻辑,显然有:
其中 表示字符串拼接化简的操作。
对于 操作,一个字符串的逆元等于它的反转,并且“消除相邻相同字符”的操作具有结合律。
故有:
因此我们所求的 ,等于
。
我们用一颗 树来表示数组的前缀状态。
维护一个栈来模拟消除的过程:
- 当元素入栈时,在树上向子节点走一步。
- 当元素出栈时,在树上向父节点回退一步。
这样每一个前缀 可以表示成树上的一个节点,即从根节点走到对应节点
的过程,并且
等于其深度。
表示逆过程,即从
走回根节点的过程。
对于每一个子区间 操作后的长度就等于
对应的节点走到
对应节点的简单路径长度。
使用启发式合并查询简单路径长度为 的点对即可。
注意字母表的大小是 是
,需要动态开点。
B 费米子通讯网络
合法方案等价于选择了一种排列,由 连向
。
设 表示
连向
的有向边条数。
则有:
其中 表示选择的排列形成了
个环,代价为
。
定义交换操作:选了 和
,其中
,交换
和
。
相当于对于一个排列交换两个元素。
我们可以交换 次,使得排列变成
个环,即每次交换多出一个环,代价乘一个
。
此时 ,排列是偶排列,且代价为
。
我们知道:一次交换操作会让排列的奇偶性改变。
这样排列的奇偶性和代价之间形成了双射。
故 是偶排列时,代价等于
,是奇排列时,代价等于
。
恰好满足行列式的定义:
其中 表示排列
的符号,
为偶排列时,符号为
,为奇排列时,符号为
。
因此答案为:
C 挑积木
方案数共有 种,接下来考虑计算高度贡献和
。
将贡献和拆成每一位对答案的贡献,分别求和。
其中 表示第
位的值为
对答案有贡献的方案数。
记 表示在
中高度小于等于
的积木个数。
表示在
中高度大于
的积木个数。
表示在
中高度大于
的积木个数。
第 位有贡献当且仅当
。
由于有 ,则条件等价于
,即数组中大于
的积木个数大于等于
。
则有:
最后除以方案数即可:
D 铁银银铜金铜银银铁
由于每个子串都是回文串,所以对于每个长度为 的子串也是回文串,故题目要求等价于字符串每个字符均相同。
因此有:
其中 表示字符
在字符串中出现的次数。
E 树树菌的星形共振
若最终的树有 个节点,它们能形成一个类五芒星图案,当且仅当
。
故 只能是奇数。
设这 个节点权值为
,则有
,其中
表示异或操作。
题目中的合并操作并不会改变被合并部分的异或和。
故 等于
。
考虑贪心。
对于一个以 为根的子树,如果它的异或和等于
,直接切开
与
父亲之间的连边即可。
但这样切最终可能会出现偶数个节点。
这种情况出现当且仅当整棵树的异或和是 。
也就是切出来偶数个权值为 的节点,只需要多合并掉一个即可。
F yourdestroy
这种问题直接求解一般都是很困难的数学问题,所以考虑二分然后判定(显然半径越大越好)
对于一个半径 ,先求出对于一对相邻的车来说,哪些时间段是合法的,由于不同的车发车间隔时间一样,所以只需要考虑前
个车。
当两个车都在线段上沿直线运动时(没拐弯),用相对运动来看这个问题,把一个车视为不动,那么另外一个车的运动就是两个向量相加,也是一个直线运动。所以对于不动的车来说,另外一个车的运动轨迹就是一个线段,想求出二者距离小于等于 的时刻,可以视为一个圆和线段相交的问题。
类似于双指针的思路,同时移动前 个车,当其中一辆车走到站点时就说明要换方向了,这个时候分一次段。总共只有
个点,所以时间段也是
个,对每个时间段分别求出距离小于等于
的时间段。
此时我们得到了对于一对车来说若干个合法的时间段,要判断原问题是否合法。注意到对于 来说,他们的合法片段实际就是把
的往后平移(可以视为在时间轴上循环平移),比如说发车间隔是
,
的合法时间是
,那么
的合法时间就是
。
做一个变换,把时间轴切割成 段然后堆到一起,只要有一个点被覆盖了
次原问题就合法,并且被覆盖了
次的点都是合法的时间点。
具体的做法就是按 处理一下区间,注意大区间可能会进行切割,然后对端点排序后,维护一个计数器
,遇到左端点
,遇到右端点
,只要最大值出现过
就合法。
G A problem of tree
拆位,只考虑第 位的贡献。
我们做树形 ,设
表示以
为根节点的虚树个数,
表示以
为根节点的所有虚树中的所有节点
到
节点的
的值为
的节点个数,
表示以
为根节点的全部虚树的权值之和。
用类似树上背包的逻辑,设 节点正在考虑儿子
的贡献,记
表示
到
路径上边权和,
为异或运算,方程易得
现在的问题是我们需要快速计算 。
考虑用 表示
到
的距离,这样
,考虑线段树合并,把
全都插入到线段树上
的位置,这样在查询时,可以根据
的值在线段树上查找
的第
位为
的全部
了 。
总复杂度 。
H 不协和音程
对于音高 ,存在合法路径当且仅当任意一对音高为
的坐标
和
,其中
,都有
。
因此按 排序后,只需要判定每一对相邻坐标是否满足
即可。
一种可能的实现是:对每个音高 存一个
,动态维护每次插入和删除时相邻坐标
的逆序个数即可。
I 唉,搞钱
当我们选了一个字符串后,其所有子串的代价都必须选。
符合最大权值闭合子图模型。
接下来考虑如何建模负权部分的图。
可以用 维护本质不同的子串数量,
树具有非常好的图性质。
再将字符串节点向对应的每个前缀节点连一条 的边即可。
注意不要将 边也连进去,这样可能会导致图变得非常复杂,导致网络流的增广论数爆增从而
。
J Yet Another Patchouli's Magical Problem
不妨设 ,此时
。
一种合法的方法是逐行依次放置。
(1, 1), (1, 2) ... (1, m), (2, 1), (2, 2) ... (n, m)
对于任意 与
之间的负载:
与
之间存在一条边,对间隔的负载是
。
- 对于
,
,每个点与
相连,对间隔的负载为
。
- 对于
,
,每个点与
相连,对间隔的负载为
。
因此一个负载间隔最大为 。
K The Eschatology of 0 and 1
对于每一个位置 ,多次进行同一种操作是无效的,故每种操作最多对
进行一次。
设 表示前
个位置不进行操作/只进行第一种操作/只进行第二种操作/进行两种操作的最小花费。
则有转移方程:
当 时:
当 时:
对 取最小值即可。
L 结束乐队 × 无刺有刺 · 联合 Live 前的交流会
在无向图中,
考虑枚举中间点 ,令
为其邻居集合。对任意
:
- 若
,则
,不应在
中连边;
- 若
,则
给出长度为
的路且不为
,因此
,应在
中连边。
可知,点集 在
中诱导出的边恰好是导出子图
的补图
的边。我们只需对每个
求出
的连通块,并将同一连通块内的点在全局并查集内合并;处理完所有
后,并查集的连通块即为
的连通块。
流程大致如下:
-
枚举中间点
,令
,即
的邻居集合。
-
构造导出子图
的边。 暴力枚举
内点对则为
,最坏可达
。 考虑采用度数定向,将每条无向边
定向为度数小的一端指向度数大的一端。设定向后出度为
。 由以下引理可得
:
若
,则
至少有
个邻居度数
,从而总度数
,故
。
因此对固定
,对每个
只需遍历
的出边
,若
则得到一条
内部边。
-
求补图
的连通块。
维护仅包含
内未访问点的双向链表
unvis。每次弹出点时,先标记其在
中的邻居集合(这些点在补图中与
无边),然后遍历链表,将未被标记的点移出链表并加入
队列,同时在并查集中合并。
-
全局维护并查集,累积合并所有
的局部补图连通性,最终统计连通块大小。
复杂度方面:
-
构造所有
的内部边: 总枚举量为
-
补图 BFS: 固定
,设
。补图 BFS 维护
unvis链表,仅包含尚未访问的点。每次队首为时,扫描
unvis:若某点未被标记为邻居,则将其从链表删除并入队;否则跳过。
删除操作每个点最多进行一次,贡献
;而对固定
,被跳过的点必为
在
中的邻居,跳过次数为
。因此所有跳过次数至多为
。
对所有
求和,
,且
等价于三角形数的常数倍,最坏为
,因此总复杂度仍为
。
-
并查集操作总次数与上述取点/合并同阶,均摊为
,不构成瓶颈。
综上,总时间复杂度 ,空间复杂度
。
M 大王叫我来巡山
对于题目要求:从 点出发,必须经过每一个魔法传送门一次,且最后回到节点
。
即整张图符合欧拉回路的要求。
回忆有向图中欧拉回路的充要条件:每个节点出度等于入度。
记录每一个节点 关于传送门单向边的出度
入度,记为
。
对于一条树边,它被经过的次数等于它两侧节点 之和的差值。
由于存在一些树边被经过 次,整张图可以被分成若干个存在欧拉回路的连通块。
但我们只能从 节点出发,所以必须将这些联通块合并成同一个。
对这些连通块跑最小生成树即可,每次连接的树边依然需要满足欧拉回路的条件,因此必须经过 次,代价为
。

京公网安备 11010502036488号