CF1383A String Transformation 1 题解
若某一位 \(i\) 上 \(A_i>B_i\),则显然无解。
否则,建立并查集,然后遍历字符串,若 \(A_i,B_i\) 不在一个集合就合并 \(A_i\) 与 \(B_i\),直到只剩下一个集合,此时的合并总次数即为答案。
为什么呢?因为将 \(A_i,B_i\) 合并的操作可以视为等价于将以 \(A_i\) 开头的连续若干个相同字符均改为 \(B_i\),正好就是题目中的所述的操作。
于是当两个字符串中的所有字符都处在同一集合时,\(A=B\),那么合并次数就是操作次数了。
时间复杂度 \(O(\alpha(n))\)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】