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