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

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

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

One-Use Switch

問題に戻る

解説

스위치 수를 M=N−1M=N-1M=N−1이라 하고 스위치 iii의 작동 시각을 TiT_iTi​라 하자. 인접한 스위치의 선후관계를

εi={↑,Ti<Ti+1,↓,Ti>Ti+1\varepsilon_i= \begin{cases} \uparrow,&T_i<T_{i+1},\\ \downarrow,&T_i>T_{i+1} \end{cases}εi​={↑

로 나타낸다. 같은 부호열을 가진 두 전체 순서는 서로 겹치지 않는 스위치의 교환만으로 바뀌므로 결과와 비용이 같다. 반대로 경로에 방향을 준 그래프는 항상 DAG이므로 모든 부호열이 실제 순서로 실현된다.

가상 부호 ε0=↓\varepsilon_0=\downarrowε0​=↓, εM=↑\varepsilon_M=\uparrowεM​=↑를 둔다. 스위치 iii에 대해

pi=max⁡{j<i:εj=↓},qi=min⁡{j≥i:εj=↑}p_i=\max\{j<i:\varepsilon_j=\downarrow\},\qquad q_i=\min\{j\geq i:\varepsilon_j=\uparrow\}pi​=max{j<i:ε

라 하자. 스위치 iii가 실제로 만나는 두 원본 카드는 처음 위치 pi+1p_i+1pi​+1과 qi+1q_i+1qi​에 있던 카드다. 따라서 비용 발생 여부는 이다.

부호를 왼쪽부터 결정하면 아직 닫히지 않은 연속 하강 구간의 오른쪽 원본 카드는 미래의 첫 상승 바로 오른쪽 카드다. 정확한 위치는 필요 없고 색 000 또는 111만 필요하다.

다음 네 DP 값을 유지한다.

  • UcU_cUc​: 열린 하강 구간이 없고 다음 스위치의 왼쪽 원본 카드 색이 ccc일 때의 최소 비용.
  • DzD_zDz​: 하강 구간이 열려 있고 그 공통 미래 오른쪽 카드 색을 zz라고 가정했을 때의 최소 비용.

현재 스위치를 iii, a=Sia=S_ia=Si​, b=Si+1b=S_{i+1}b=S라 하자. 상승을 고르면 에서 를 더해 로 가고, 에서 를 더해 로 간다. 하강을 고르면 에서 각 에 대해 를 더해 로 가고, 에서 를 더해 로 간다.

US1=0U_{S_1}=0US1​​=0으로 시작한다. 마지막 실제 스위치에서는 가상 상승을 강제하므로 상승 전이만 수행한다. 답은 마지막의 min⁡(U0,U1)\min(U_0,U_1)min(U이다. 시간 복잡도는 , 문자열 외 추가 메모리는 이다.

Solution written by GPT5

,
↓,
​
Ti​<Ti+1​,Ti​>Ti+1​​
j
​
=↓
},qi​=
min{j≥
i:
εj​=↑
}
+
1
Spi+1XORSqi+1S_{p_i+1}\mathbin{\mathrm{XOR}}S_{q_i+1}Spi​+1​XORSqi​+1​
z
i+1
​
UcU_cUc​
Ci[c≠b]C_i[c\neq b]Ci​[c=b]
UcU_cUc​
DbD_bDb​
Ci[a≠b]C_i[a\neq b]Ci​[a=b]
UaU_aUa​
UcU_cUc​
zzz
Ci[c≠z]C_i[c\neq z]Ci​[c=z]
DzD_zDz​
DzD_zDz​
Ci[a≠z]C_i[a\neq z]Ci​[a=z]
DzD_zDz​
0​
,
U1​
)
O(N)O(N)O(N)
O(1)O(1)O(1)