Rating-=27
挂分挂得最“爽”的一次。
T1 可是啊
本题思路小总结:
- 注意到两人吃瓜数量形成等差序列,那么我们不妨设两人最后一次吃瓜的数量为 ,输入的西瓜总数为 。
- 我们利用等差数列公式求出 与 之间的关系,可以得到:对于先手阿瓦,,再次通过等差数列公式,可以求得阿瓦能坚持的次数为 ,进一步可以求出这个次数与 的关系;对于后手烤乐滋,,进而求出次数与 的关系。
T2 世界线交汇
本题思路小总结:
- 注意到这是一道
给了递推式只需要加记忆化的签到题(挂分除外)
然后这题就做完了
T3 终究是一场梦
这题挺应景的。
本题思路小总结(。?):
- 注意到本题的循环右移操作其实等价于将任意一个数向前移动
- 那么我们只需要把前 小的数移到前面就可以了。。。
吗?
没错,蒟蒻的分就是这么挂的。(也太轻敌了吧啊喂)
也不知道自己怎么想的,居然能把T3的思路想成签到题的难度,自己也没觉得有什么不对劲。
唉,终究是一场梦~
那么,本题的正确做法是怎样的呢?
本题贪心思路小总结(这次是真的):
- 我们定义一个指针 指向原数组中第一个还没有被纠正过位置的数,并定义一个答案序列 ,再定义一个数组 存储每个数字在数组中的位置。
- 遍历所有数 (注意不是下标,而是值),每遍历一个数,将其加入答案序列,标记为已纠正位置(用bool桶维护),分两种情况讨论:当 指向当前的数(即 )时,我们
++head直到其指向下一个未被纠正的数;反之不移动 ,并-k,等价于用一次操作将此数移到序列的前面。 - 最后将数组中未被纠正的所有数依次加入答案序列,输出答案序列。
T4 大家会再次相遇吗
这题没挂分。
但是呢不知道如何判断大数是否为 的幂次,便打了个暴力。
本题思路小总结:
- 将 的非负整数幂按十进制长度分为两类:长度 (即 )和长度 (即 ,,保证位数不超过 )。
- 短模式使用 AC 自动机构建 Trie,插入所有短 的幂的十进制串,并统计文本中所有出现次数(自动处理重叠且无需关心前导零)。
- 长模式数量极多,不能建自动机;预处理所有长 的幂的十进制串的模 哈希值和长度,用自定义开链哈希表存储(键为哈希值,值含长度和完整哈希)。
- 对每个文本子串,若长度 ,计算其哈希,在哈希表中查找是否存在相同长度和哈希的 的幂,同时检查该子串最高位不为 (排除前导零),若匹配则答案加 。
- 两部分计数相加即为最终答案,总复杂度 ,满足 的数据范围。
T5 大家仍会记得我吗
没错。
本蒟蒻又挂分了。
因为二进制优化不会多个容量,单调队列优化不熟,于是写了个枚举物品数量的多重背包暴力,按道理来说是能拿到 的情况的15分的,并且运气好还能再拿一点分。
诶 您猜怎么着
那么为什么会光荣地拿到0分呢

以上是我枚举物品数量时写的循环代码。
对,你没看错,本蒟蒻并没有枚举物品数量为 的情况。
于是就挂分了QAQ
本题思路小总结:
- 每种牌视为多重背包,但周期奖励 只在凑满 张时触发,不能简单拆分。
- 设总张数 ,完整周期 ,余数 。若直接拆分完整周期包和剩余单张,会导致剩余部分可组合出超过 张,破坏约束。
- 修正:保留一个完整周期,令周期数为 (若 ),剩余张数 。将前 个完整周期二进制拆分做多重背包。
- 对剩余 张牌,枚举取 张(),每种 是互斥选项,用分组背包更新,只有 时才加一次 。
- 若 ,无周期奖励,直接二进制拆分单张。
- 零消耗牌直接累加伤害。
- 核心:剩余部分作为一组互斥项处理,避免超周期组合。
T6 早安。
不知道啊,我写了个高精度暴力,结果交上去就全T了
赛后用评测样例测了一下发现实际好像是RE了。。。
本题思路小总结:
- 定义“好数”为十进制串 中,子串 出现的位置染蓝后,蓝色连续段数恰为 。
- 对每个 ,求 内好数个数,容斥为 ,其中 统计 的答案。
- 数位 DP 按位枚举,用 KMP 维护当前已匹配的子串 的前缀长度 ,状态为 。
- 表示是否受上界限制, 表示前导零, 为当前蓝色段数, 为上一蓝色段末尾位置, 为当前枚举位。
- 转移时枚举数字 ,更新 ;若匹配到完整 ,则产生新蓝色段,若 则连续,否则 增加。
- 记忆化搜索,空间压缩为 ,注意 上限为 。
- 最后输出 个答案,对 取模。