Codeforces Round 807 (Div. 2)
1|0基本情况
AB题秒了。
C题搞了半天,搞了一个假的解法,最后还是爆空间了。
D题没想下去。
2|0C. Mark and His Unfinished Essay
2|1错误分析
写出来自己的错解之后没有进一步思考,而是觉得没希望直接做D去了,实则D也没可能半小时写完。
我的错解就是预处理好每个字符串复制后所在的区间,然后查的时候二分找区间,再找字符串。(实则换汤不换药,没有优化空间)。但其实照着这个想法进一步下去,把结构体中的字符串去掉,也就是正解。
2|2正确思路
我们可以发现,任何一个新增的字符,都是由之前的字符复制过来的。
所以,我们可以想个办法,让一个新增的位置回溯到原字符串中的某一个位置。
可以发现,复制的次数非常小,所以我们可以从后往前遍历每次复制操作。
如果我们所求的目标位置在粘贴区间内,就回溯到原区间的对应位置。
不断回溯,就可以找到答案。
3|0D. Mark and Lightbulbs
我们考虑这个操作究竟能干什么。
我们可以发现,进行一次操作可以 使 01 分界线移动
所以如果
可以证明存在一种方案使得移动分界线的时候仅仅往同一方向移动,所以就不会有额外的操作出现。
所以就只需要扫一次得到
代码是非常简短的
__EOF__

本文作者:Kdlyh
本文链接:https://www.cnblogs.com/kdlyh/p/17896633.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/kdlyh/p/17896633.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下