March 1, 2025

CF2070

这场打的很烂,记录一下

LINK

A

因为一个人不能连着比三次,所以其实不能同一个人连着歇两场,所以必须这三人轮换着歇,第一场与第 场歇的人一样

B

打表题, 的数据里面只有 个数 满足,,所以 等于这些数时一定无解,由于要所有前缀不为完全平方数,所以在遇到这些数的时候就和后一个数调换位置即可

C

一个 trick:一棵树的后序遍历序列 ,从任何一个节点开始,第 步从当前节点向 节点移动一步,最后一定回到根节点

于是拎出来起点到终点的链,对链上所有节点都 dfs 一遍即可

D1

首先由题目可以知道对于 ,有 ,所以为了方便把 设置成奇数,后面的数都是成对出现的,异或可以消掉

所以 可以简化

D2

设置成奇数

要求 ,即求 我们按下标奇数偶数分开求, 以内的数很好求,focus on 的数,令 ,首先我们打个表如下,发现和 的倍数有关,不妨先设 或者 ,如果不是我们可以利用 D1 来调整(以下省略下取整)

我们发现到了 才有规律,所以我们可以预处理出来前 个数的前缀和

这样就好求了,每次会除掉 ,递归处理,注意每次进入递归的数都应该是模 4 余 1 或者 0

就求完了

关于本文

由 wsy_jim 撰写, 采用 CC BY-NC 4.0 许可协议.

#CodeForces