挑战赛#25 全题解
2025-12-01 19:39:00
发布于:北京
ACGO 挑战赛 #25 全题解
T1
直接模拟即可。
时间复杂度:。
空间复杂度:。
T2
模拟机器人走路,并使用 set 记录走过的点。每次走到一个新点时候先判断是否在 set 里即可。
时间复杂度:。
空间复杂度:。
T3
注意到题目最下面一句话:请注意,如果不同的排列得到相同的数,只计为 个。
所以我们枚举所有平方数,总共 个,看每一个平方数能否重排为 即可。注意, 也是平方数。
时间复杂度:。
空间复杂度:。
T4
考虑维护全局 mex。使用 set 维护所有未出现的数。
设 cnt[x] 表示 出现次数。当 cnt[x] 减少为 时,把 插入到 set 中;当 cnt[x] 增加为 时,把 从 set 中删除。
修改操作可以看作一次插入和一次删除。
另外,本题值域 ,看上去十分吓人,但容易发现,mex 最大只有 ,所以 set 只维护 就可以。
时间复杂度:。
空间复杂度:。
T5
考虑一种情况,就是 之间有一条链(也就是 的情况)。那么容易发现 和 会先连边,然后 和 连边,……以此类推,最后 和 连边。
因此,实际上同一个连通块内的所有点会互相连边。
使用并查集维护每一个连通块的大小 siz,答案为 。
时间复杂度: 或 。
空间复杂度:。
T6
假设我们在点 ,已经计算出 的考虑从 向儿子 移动会产生什么改变。
容易发现, 到 的子树里每一个点的路径减少 , 到其它点每一个点的路径增加 。
定义 表示 子树内的点权和,得到:
先暴力算出 ,然后根据该公式推到所有点上,取 即可。
时间复杂度:。
空间复杂度:。
全部评论 1
莫莫莫
2025-12-01 来自 广东
0















有帮助,赞一个