DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

Infinite String

返回题目

题解

TTT에 한 번이라도 등장하는 문자들의 집합을 CCC라고 하자.

먼저, 공통 부분수열에 포함되는 모든 문자는 T∞T^\inftyT∞에 등장해야 하므로 반드시 CCC에 속해야 한다. 따라서 답은 SSS에서 CCC에 속하는 문자의 개수를 넘을 수 없다.

반대로, SSS에서 CCC에 속하는 문자만 순서대로 모두 골라 만든 문자열을 XXX라고 하자. XXX의 각 문자는 TTT의 어딘가에 등장한다. 현재까지 T∞T^\inftyT의 어느 위치까지 사용했더라도, 그 뒤의 다음 개 문자 안에는 원하는 문자가 다시 등장한다. 그러므로 의 문자를 앞에서부터 차례대로 모두 고를 수 있고, 는 의 부분수열이다.

따라서 답은 SSS의 문자 중 TTT에 한 번이라도 등장하는 문자의 개수이다. TTT에 등장하는 문자를 표시한 뒤 SSS를 한 번 순회하면 된다.

시간 복잡도는 O(∣S∣+∣T∣)O(|S|+|T|)O(∣S∣+∣T∣)이고, 추가 공간 복잡도는 O(1)O(1)O(1)이다.

Solution written by GPT5.6

∞
∣T∣|T|∣T∣
XXX
XXX
T∞T^\inftyT∞