BOJ 26970 - Mountains
에서 오른쪽으로 볼 수 있는 들의 집합을 관리한다.
이 집합에서 항상 임을 관찰한다.
따라서 std::set
으로 이 집합들을 관리해주며 에 문제를 해결할 수 있다.
항상 는 추가가 되기 때문에 다음과 같은 방식이 성립한다.
가 추가되었다고 하자.
라면 라면 에서 를 제거하고 에서 초과의 수들 중 가 커짐으로써 안보이게 되는 것들을 모두 제거한다음 가 에서 보인다면 삽입해준다.
는 초기화하고 다시 으로 보이는 것들을 다 넣어준다.
라면 신경 쓸 필요 없다.
따라서 이렇게 관리하여 문제를 해결할 수 있다.
bitset
을 이용한 최적화도 가능한 모양이다.
Comments