DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

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∞