解説
의 모든 1인 비트가 어떤 에도 모두 포함되는지를 빠르게 판정할 수 있으면 된다.
크기 의 불 배열 을 만든다. 처음에는 등장한 값에 대해 로 둔다. 그 다음 각 비트 에 대해, 번 비트가 0인 모든 마스크 에 다음 전이를 적용한다.
이 SOS DP가 끝나면 는 어떤 가 의 모든 1인 비트를 포함할 때, 즉 인 가 존재할 때 정확히 참이다.
이제 쿼리 를 처리한다. 답을 으로 시작하고 비트 부터 까지 내려간다. 현재 비트가 에서 1이고 가 참이라면 그 비트를 에 추가한다. 높은 비트부터 가능한 한 1로 만들었으므로 마지막 가 최댓값이다.
한 테스트 케이스의 전처리는 , 모든 쿼리는 에 처리된다. 메모리 사용량은 이다.
증명
SOS DP 이후 가 참이라는 것은 정확히 의 모든 1인 비트를 포함하는 가 하나 이상 존재한다는 뜻이다. 따라서 쿼리 처리 중 가 참이면, 지금까지 선택한 모든 비트와 번 비트를 동시에 포함하는 하나의 가 존재한다.
Solution written by GPT5.6