2026 Codeforces Round 1082 (Div. 2)
A - Parkour Design
解题思路
题目中有四种操作:
- x + 2 , y + 1
- x + 4 , y - 1
- x + 6 , y + 0
- 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
解题思路
当 , 一个合法的三元组就是
可以证明,
举例:
序列
合法的三元组是
在 的 状态下,有
三个区间,我们可以合并成两个区间 :
进行维护。
如果
更新成
,则添加一个新区间
,
的状态下 合并成一个
的区间
每一个的区间长度为
,都可以产生
的贡献
维护一下每个值状态的总贡献即可

京公网安备 11010502036488号