문제 링크
https://www.acmicpc.net/problem/18436
풀이
구간에 속하는 홀수 혹은 짝수의 개수를 알 수 있다면 2, 3번 쿼리에 대한 답을 할 수 있습니다. 홀수를 1로 두고 짝수를 0으로 두었을 때 구간합을 구하면 3번 쿼리에선 그대로 출력하고 2번 쿼리에선 구간의 길이 - 구간합을 출력하면 됩니다. 세그먼트 트리나 펜윅 트리를 사용하면 업데이트와 구간합을 구하는 것을 $O(\log N)$으로 할 수 있기에 전체 시간복잡도 $O(M \log N)$입니다.
전체 코드
1 |
|