Educational Codeforces Round 149 (Rated for Div.2) 题解 A~D
A. Grasshopper on a Line
题目大意
给定两个整数
解题思路
首先我们可以考虑到如果总长度
AC Code
B. Comparison String
题目大意
给定一个仅由>
和<
组成的长度为
解题思路
既然要求最少有几种,那么我们不妨思考一下在什么限制条件下才必须是不同的元素。很显然,是<<<<
或者>>>>>>
这样的连续相同的关系符,这样可以强制限定这一串的数不相等。而对于<<<>><<<
这样的,每次变换关系符号,都必然可以利用先前出现过的数来组成数组。那么问题其实就转化为了最长连续相同字符的长度加一了。
AC Code
C. Best Binary String
题目大意
给定一个仅含有0
1
?
三种字符的字符串,现在需要将?
替换成0
或者1
,同时定义一种操作:选取字符串中某一连续区间,将这一个区间倒转。问将原串替换后得到的串转换为非递减序列需要的操作数最小为多少。
解题思路
非递减序列实际上要求的就是000000111111
这种串,我们选取的区间只能是连续的,所以可以发现形如01010
这种序列操作次数一定比01110
多,那么对于01?10
这样的,就应当尽量凑连续的1
。而对于01?01
这样的,?
两测0
1
数量一致,取哪一个都没有影响。所以我们可以让处在中间的?
替换成它前面的字符,如果第一个字符就是?
,为了减少逆序次数,可以替换为0
,这样就可以得到操作数最小的串了。
AC Code
D. Bracket Coloring
题目大意
给定一个括号序列,定义关于括号序列的“美丽”的定义:如果它是匹配的,或者它逆序后是匹配的即可。
现在问给定的括号序列能否使用某种方式染色,使得每种颜色的序列都是”美丽“序列。
如果可以,输出染色方案。
解题思路
首先我们需要知道什么情况下不能染色成功,那就是无论如何都没办法匹配序列,由于本题逆序也可以匹配,那么不能染色的条件只有左右括号数量不一样。
判断完这个之后,我们可以发现,如果序列不能正向匹配,那么抽离它正向匹配的部分之后,剩下的恰好就是逆向匹配的部分。这是必然的,否则左右括号数量不一致。那么我们可以开两个栈模拟,使用一个数组存栈序答案(染色方案)。同时处理什么时候是一个栈存,什么时候是两个栈存即可。
AC Code
__EOF__

本文链接:https://www.cnblogs.com/SanCai-Newbie/p/17438603.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架