문제 링크
- http://icpc.me/12895
사용 알고리즘
- 세그 레이지
시간복잡도
- $O(Q \log N)$
풀이
$T \leq 30$입니다.
가장 간단한 풀이로는 세그먼트 트리를 T개 만들어서 레이지를 뿌리면 되지만… TLE가 납니다.
어떤 구간에 색깔이 c인 집이 있는지만 확인하면 되므로 비트로 관리해도 된다는 것을 알 수 있습니다. 또한 $T \leq 30$이기 때문에 모든 색의 정보를 int 자료형 하나에 넣어줄 수 있습니다.
구간의 or값을 관리하는 세그먼트 트리를 만들어서 레이지를 뿌려주면 문제를 풀 수 있습니다.
전체 코드
1 |
|