DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

일회용 스위치

문제로 돌아가기

해설

스위치 수를 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)