博客广场

题解、比赛复盘与学习记录

比赛总结 陈俊霖 2026-8-10 21:01:32

8月Day8(未完成)

A.Longest k-Good Segment 核心思路 采用滑动窗口(双指针)维护一个合法区间,保证区间内不同元素个数不超过 kk。枚举右端点,若加入新元素后不同元素个数超过 kk,则移动左指针缩小区间,直到合法。在每次合法时更新最长区间的左右端点。 具体步骤 读入 n,kn,k 和数组 aa(下标从 0 开始)。 初始化左指针 left = 0,不同元

16 0 0
比赛总结 陈俊霖 2026-8-9 17:35:34

8月Day7

A.Move Brackets 核心思路 将一个括号序列调整为合法括号序列,最少操作次数等于前缀和达到的最小负值的绝对值。因为每次操作可将任意一个括号移到开头或结尾,而移动右括号到开头(或左括号到结尾)能消除前缀中的负平衡。所需移动的括号数即为最深的不平衡程度。 具体步骤 初始化平衡值 bal = 0,最小前缀和 mn = 0。 遍历字符串 s 的每个字符:

15 0 0
比赛总结 陈俊霖 2026-8-8 21:00:21

8月Day2

A.Mortal Kombat Tower 核心思路 这是一道经典的动态规划题。游戏规则是两人轮流行动,朋友先手。朋友面对困难 Boss(值为 1)时必须消耗跳过点,而你可以直接击败任意 Boss。我们需要最小化朋友使用的跳过点总数。 由于每次行动可以击败 1 或 2 个 Boss,且行动者交替,我们只需记录当前轮到谁(朋友或你)以及当前已经消耗的跳过点数,

17 0 0
比赛总结 温张鑫 2026-8-8 20:59:07

8月day6

T1:Spelling Check 题意: 给定两个字符串,寻找上面字符串比下面多余的字母,并删除。如果不可以只删除一个字母来将上面的字符串变成下面的,就输出0即可。 思路: 双指针遍历两个字符串,找到第一个不同的位置,如果s[i] != t[j],说明s[i] 是多出来的,记录位置i+1, 如果前面的字符串都是相同的,就记录最后一个n,去重输出。 代码:

20 0 0
比赛总结 陈俊霖 2026-8-8 20:13:10

8月Day6

A.Spelling Check 核心思路 通过比较两个字符串的前缀和后缀,确定所有可能被删除的字符位置。因为第一个字符串比第二个多一个字符,删除一个字符后剩余部分必须与第二个字符串完全匹配。 具体步骤 从左向右扫描:比较 s 与 t,找到第一个 s[i] != t[i] 的位置 left。若全部匹配,则 left = m(即最后一个字符可删除)。 从右向左

23 0 0
比赛总结 陈俊霖 2026-8-3 21:19:47

8月Day1

A.Qualification Rounds 核心思路 每个问题用 k 位掩码表示哪些队伍知道该题(位为1表示知道)。 选出的问题集合合法,当且仅当每个队伍的贡献和 ≥ 0,其中贡献定义为:知道该题 → -1,不知道 → +1。 关键性质:若存在合法集合,则必存在一个大小 ≤ 8 的合法集合(因为 k ≤ 4)。 因此只需枚举所有由 1~8 个问题组成的集合

20 0 0