3392번 "화성 지도"는 세그먼트 트리와 스위핑으로 맞추고, 이 문제에 도전하는 중입니다. x, y좌표가 10^9까지 들어오기 때문에, 좌표를 직접 다루는 세그먼트 트리를 만들지는 않았습니다. 대신 y좌표를 크기순으로 정렬해서 해시 테이블을 만들고 그 값을 세그먼트 트리에 저장하는 식으로 구현했습니다. 그리고 y축에 평행한 축으로 x값을 증가시키면서 스위핑하는 방식을 사용했는데, 사각형의 세로변을 만날 때마다 y값 갱신 부분을 어떻게 처리해야 할 지 모르겠습니다.
예를 들어 0, 1, 2를 갱신하고자 할 때, 0과 1은 같은 범위로 묶어서 처리가능한데 2만 따로 밖으로 나와버리니 1과 2 사이의 y값들을 처리할 방법을 모르겠습니다.
companyofpotato 3년 전 1
3392번 "화성 지도"는 세그먼트 트리와 스위핑으로 맞추고, 이 문제에 도전하는 중입니다. x, y좌표가 10^9까지 들어오기 때문에, 좌표를 직접 다루는 세그먼트 트리를 만들지는 않았습니다. 대신 y좌표를 크기순으로 정렬해서 해시 테이블을 만들고 그 값을 세그먼트 트리에 저장하는 식으로 구현했습니다. 그리고 y축에 평행한 축으로 x값을 증가시키면서 스위핑하는 방식을 사용했는데, 사각형의 세로변을 만날 때마다 y값 갱신 부분을 어떻게 처리해야 할 지 모르겠습니다.
예를 들어 0, 1, 2를 갱신하고자 할 때, 0과 1은 같은 범위로 묶어서 처리가능한데 2만 따로 밖으로 나와버리니 1과 2 사이의 y값들을 처리할 방법을 모르겠습니다.
사용한 반례는
2
10 20 10 20
15 25 15 30
입니다.(정답은 225)