해설
각 문자열을 위의 벡터로 생각하자. 어떤 도장을 한 위치에 찍는 것은 길이 인 벡터 하나를 XOR하는 것과 같다. 따라서 가능한 모든 연산 결과는 도장들을 가능한 위치에 놓아 얻는 벡터들의 선형생성공간이다. 문제는 가 이 선형생성공간에 속하는지 묻는 것이다.
이를 직접 가우스 소거하면 벡터 길이가 너무 길다. 대신 쌍대공간을 본다. 길이 인 벡터 가 모든 도장 벡터와 내적이 이라면, 는 다음 조건을 만족한다.
모든 와 가능한 모든 시작 위치 에 대해 위 식이 성립해야 한다.
이라 하자. 가장 긴 도장 하나를 고르면, 그 도장의 마지막 문자가 1이므로 ()는 이전 개의 값의 XOR로 결정된다. 따라서 모든 는 처음 개의 변수 의 선형식으로 표현된다. 여기서 이다.
이제 모든 도장 조건을 이 개의 변수에 대한 선형 방정식으로 추가한다. 또한 와 의 내적도 개의 변수에 대한 선형식 하나로 계산한다. 선형대수의 기본 성질에 의해 가 도장 벡터들의 선형생성공간에 속할 필요충분조건은, 와 의 내적 선형식이 추가한 방정식들의 행공간에 속하는 것이다.
이므로 각 선형식은 128비트 정수 하나로 저장할 수 있다. 각 위치마다 세 도장 조건만 처리하면 되므로 시간 복잡도는 , 메모리 복잡도는 이다.
Solution written by GPT5.5