2025.12.16每日一题:游游的字母翻倍

Hanzhi_OvO的头像 发布于 2025-12-16 586 次阅读


题目来源:https://ac.nowcoder.com/acm/problem/261661

不难发现,操作数和长度上不算很大的数据,允许我们直接暴力模拟算法。

直接开始模拟:读入 nq,然后读入字符串 s,为了方便操作我们采用stl中的字符串(所以其实 n 是没有用的)。然后在 q 次询问中每一次都读入左右端点[ l , r ]. 接下来,从右往左开始插入操作,用insert方法减少代码量。最后输出修改后串 s.

易错点一:从右往左(从后往前)遍历修改。如果第一次写习惯性写从左往右去跑样例就不难发现自己错了。仔细想一下:对于第一次询问的第一次操作,我们如果从左往右进行修改,那么 b 复制一次后,会把 c 及以后的字符在索引值上往后挤一位,如此往复,代码的效果就是只会对第一次询问下第一次操作的字符进行复制。修改方法很简单,反一下从后往前,因为从 r 端点位置往后插入字符并不影响前面字符的索引,也就是可以正常修改。按照这个思路修复代码并提交,发现ac。