문제 링크
- http://icpc.me/1395
문제 출처
- 2018 USACO November Gold 3
사용 알고리즘
- Segment Tree
시간복잡도
- O(m log n)
풀이
이 문제도 어제 올린 글과 같이 Lazy Propagation을 사용해 푸는 문제입니다.
문제를 처음 잡았을 때는 스위치의 상태를 반전시킨다는 의미에서 1을 xor해주는 방법도 생각을 했지만 다른 풀이가 생각나서 그 방법으로 구현을 했습니다.
[start, end]범위에서 켜져있는 스위치의 개수를 x라고 합시다.
[start, end]범위에 있는 모든 스위치의 상태를 반전시키면 켜져있는 스위치의 개수는 (end-start+1)-x개가 된다는 것은 자명합니다.
이것을 기반으로 구현했습니다.
전체 코드
1 |
|