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

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

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

수열 연산

문제로 돌아가기

해설

각 수열을 Xi=2∑k<iAk+AiX_i=2\sum_{k<i}A_k+A_iXi​=2∑k<i​Ak​+Ai​로 변환한다. 위치 iii를 삭제했을 때, 뒤쪽 위치 jjj까지의 거리가 홀수이면 앞부분 합은 AiA_iAi​만큼 감소하고 원소는 2Ai2A_i2Ai​만큼 증가한다. 거리가 짝수이면 앞부분 합은 AiA_iAi​만큼 증가하고 원소는 2Ai2A_i2Ai​만큼 감소한다. 따라서 변환한 값은 바뀌지 않고 해당 위치만 삭제된다. 변환은 가역적이다. 앞부분 합 PPP를 알고 있으면 다음 원소는 Xi−2PX_i-2PXi​−2P이다. 그러므로 두 수열을 같게 만드는 것은 변환한 두 수열의 공통 부분수열을 남기는 것과 같다. LCS 길이를 LLL이라 하면 답은 N+M−2LN+M-2LN+M−2L이다. 서브태스크 1은 모든 삭제 상태를 실제 연산으로 열거하고 공통 상태를 비교한다. 상태는 최대 2N2^N2N개이며, 정렬 집합을 이용한 보수적 시간 상계는 O((2N+2M)(N+M)3)O((2^N+2^M)(N+M)^3)O((2N+2M)(N+M)3)이다. 전체 풀이는 LCS DP를 사용하며 시간 O(NM)O(NM)O(NM), 메모리 O(M)O(M)O(M)이다. 원래 변환값 절댓값은 49 995 00049\,995\,00049995000 이하이다. 삭제 후에도 이 값의 부분수열이므로 복원된 모든 원소 절댓값은 (2⋅5000−1)49 995 000<5⋅1011(2\cdot5000-1)49\,995\,000<5\cdot10^{11}(2⋅5000−1)49995000<5⋅1011이다. 64비트 정수로 충분하다. Solution written by GPT6.1