2026 Codeforces Round 1082 (Div. 2)

(本题解按照题目难度排序,仅用作补题记录)

A - Parkour Design

解题思路

题目中有四种操作:

  1. x + 2 , y + 1
  2. x + 4 , y - 1
  3. x + 6 , y + 0
  4. x + 3 , y + 0

可以按照 y 的取值,推测 x 的构成

B - ABAB Construction

解题思路

按照题意来理解,如果长度为奇数,那么左右都是 a , 第一个字母必须是 a
如果长度为偶数,后续选择的一定是 a 、 b 各有一个,否则就不符合,按照偶数对遍历字符串判断

C1 - Lost Civilization (EASY)

解题思路

如果规定一个根的值为root ,那么记录一下此根的最近的链的范围为 [l+1,r]
如果一个新的值为 r + 1 ,则是最近的链的延伸
如果一个新的值为 [ l + 1 , r ] ,则是此根在别的链的延伸,同时更新一下 r 值
否则 需要新开一个根 ans++

C2 - Lost Civilization (HARD)

解题思路

所有情况都需要一个根有 1 的贡献 ,总共是
此后分三种情况
> 时,前面的都无法延伸 ,当前位置的贡献 为
<= && 时,当前根无法延伸,之前的根可能能延伸,但被当前根阻断了,能产生贡献的位置 为 当前根之前的位置 ,贡献为
<= &增& 时, 当前根可以延伸 , 在单调栈中维护了 值 递 的下标,找到第一个 全都对 有贡献,贡献为

D - Recollect Numbers

解题思路

翻牌回数的范围为
当 给出 m 张牌 时,最多 次 ,多贡献了
单位价值函数 ,也就是当 越大 ,产生的贡献越多,当时,产生了全局上界
我们只需要 得到 我们需要 次贡献 ,使用 张牌 进行操作,这种贡献的产生,需要每一张牌都翻两次 ,最后一张牌只有一次。
其他牌都只产生 本身 的贡献 。

E - Swap to Rearrange

解题思路

如果需要循环的序列的最后一位是 , 则 循环后 前缀和 不会产生矛盾 ,可以进行子序列个数是 .
如果需要循环的序列的最后一位是 , 则 循环后 前缀和 可能会 ,只有循环的范围内前缀和 时,循环转移后才不会产生矛盾,使用 双指针,维护最近的 前缀和 的位置 ,合法 的 子序列 个数是

F - Binary Not Search and Queries

解题思路

, 一个合法的三元组就是
可以证明,
举例:
序列
合法的三元组是
的 状态下,有三个区间,我们可以合并成两个区间 : 进行维护。 如果更新成 ,则添加一个新区间 ,
的状态下 合并成一个的区间
每一个的区间长度为 ,都可以产生 的贡献
维护一下每个值状态的总贡献即可