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

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

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

이진수 도장

문제로 돌아가기

해설

각 문자열을 F2\mathbb{F}_2F2​ 위의 벡터로 생각하자. 어떤 도장을 한 위치에 찍는 것은 길이 nnn인 벡터 하나를 XOR하는 것과 같다. 따라서 가능한 모든 연산 결과는 도장들을 가능한 위치에 놓아 얻는 벡터들의 선형생성공간이다. 문제는 sss가 이 선형생성공간에 속하는지 묻는 것이다.

이를 직접 가우스 소거하면 벡터 길이가 너무 길다. 대신 쌍대공간을 본다. 길이 nnn인 벡터 yyy가 모든 도장 벡터와 내적이 000이라면, yyy는 다음 조건을 만족한다.

∑j=0∣ti∣−1ti[j+1]yl+j=0\sum_{j=0}^{|t_i|-1} t_i[j+1]y_{l+j}=0j=0∑∣ti​∣−1​

모든 i∈{1,2,3}i \in \{1,2,3\}i∈{1,2,3}와 가능한 모든 시작 위치 lll에 대해 위 식이 성립해야 한다.

L=max⁡(a,b,c)−1L=\max(a,b,c)-1L=max(a,b,c)−1이라 하자. 가장 긴 도장 하나를 고르면, 그 도장의 마지막 문자가 1이므로 ypy_pyp​ (p)는 이전 개의 값의 XOR로 결정된다. 따라서 모든 는 처음 개의 변수 의 선형식으로 표현된다. 여기서 이다.

이제 모든 도장 조건을 이 LLL개의 변수에 대한 선형 방정식으로 추가한다. 또한 sss와 yyy의 내적도 LLL개의 변수에 대한 선형식 하나로 계산한다. 선형대수의 기본 성질에 의해 sss가 도장 벡터들의 선형생성공간에 속할 필요충분조건은, sss와 y의 내적 선형식이 추가한 방정식들의 행공간에 속하는 것이다.

L≤99L \leq 99L≤99이므로 각 선형식은 128비트 정수 하나로 저장할 수 있다. 각 위치마다 세 도장 조건만 처리하면 되므로 시간 복잡도는 O(n(a+b+c))O(n(a+b+c))O(n(a+b+c)), 메모리 복잡도는 O(n)O(n)O(n)이다.

Solution written by GPT5.5

t
i​
[
j
+
1]yl+j​=
0
≥Lp \geq L
p≥L
LLL
ypy_pyp​
LLL
x0,x1,⋯ ,xL−1x_0,x_1,\cdots,x_{L-1}x0​,x1​,⋯,xL−1​
L≤99L \leq 99L≤99
y
y