아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

지오해시 격자

시간 제한5초메모리 제한512 MB

요약
2^n 곱하기 2^n 격자 안의 직교 다각형에 대해, 주어진 영역을 덮는 최대 t개 지오해시 구간 합집합의 최소 넓이를 묻는 질의 1e5개에 답한다.
난이도

어려움10점 중 9점

유형
분할 정복, 트리, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

지오해시(geohash)는 지도 좌표를 스칼라 값으로 부호화하는 방법으로, 데이터베이스에서 지리 데이터를 효율적으로 저장하고 조회하는 데 쓰인다. 이 문제에서 지도는 표준 좌표계 위에 놓인 2n×2n2^n \times 2^n 크기의 격자이다. xx 좌표는 오른쪽으로 갈수록, yy 좌표는 위쪽으로 갈수록 커진다. 지도의 칸은 좌표축에 평행한 단위 정사각형이며, 왼쪽 아래 꼭짓점이 0≤x,y<2n0 \le x, y < 2^n을 만족하는 정수 좌표 (x,y)(x, y)이다.

2n×2n2^n \times 2^n 지도에는 모두 22n2^{2n}개의 칸이 있다. 칸 cc의 지오해시 h(c)h(c)는 2n2n비트의 음이 아닌 정수이고, 최상위 비트부터 한 비트씩 정한다. 처음에 보기 영역을 지도 전체로 두고 다음 두 단계를 nn번 반복한다.

  1. 보기 영역을 왼쪽 절반과 오른쪽 절반으로 똑같이 나눈다. 칸 cc가 왼쪽 절반에 있으면 다음 비트는 0이고, 아니면 1이다. 칸 cc가 들어 있는 절반이 새 보기 영역이 된다.
  2. 보기 영역을 아래쪽 절반과 위쪽 절반으로 똑같이 나눈다. 칸 cc가 아래쪽 절반에 있으면 다음 비트는 0이고, 아니면 1이다. 칸 cc가 들어 있는 절반이 새 보기 영역이 된다.

지오해시 구간 [a,b][a, b]는 지오해시 값이 aa 이상 bb 이하인 칸의 집합이다. 지도의 영역을 지오해시 구간 몇 개로 근사하면 편리할 때가 많다. 칸의 집합 CC와 정수 tt가 주어질 때, CC의 최적 tt-근사는 CC를 포함하고 지오해시 구간 최대 tt개의 합집합으로 나타낼 수 있는 영역 가운데 넓이가 가장 작은 것이다. 엄밀하게는 지오해시 구간 최대 tt개로 이루어진 집합 SS 가운데 다음 조건을 만족하는 것이다.

  • CC의 모든 칸이 SS의 구간 중 적어도 하나에 들어 있다.
  • SS에 속한 모든 구간의 합집합에 들어 있는 칸의 수가 가능한 한 작다.

영역 CC는 변이 격자와 평행한 다각형의 내부에 있는 칸 전체로 주어진다. 정수 qq개 t1,t2,…,tqt_1, t_2, \ldots, t_q도 주어진다. 각 tkt_k에 대해 CC의 최적 tkt_k-근사의 넓이, 즉 그 영역에 들어 있는 칸의 수를 구하시오.

입력

첫째 줄에 정수 nn (1≤n≤301 \le n \le 30)이 주어진다. 지도 한 변의 길이는 2n2^n이다.

둘째 줄에 다각형의 꼭짓점 수인 짝수 mm (4≤m≤2004 \le m \le 200)이 주어진다. 다음 mm개 줄 가운데 kk번째 줄에는 다각형의 한 꼭짓점 좌표를 나타내는 정수 xkx_k, yky_k (0≤xk,yk≤2n0 \le x_k, y_k \le 2^n)가 주어진다. 꼭짓점은 반시계 방향 순서로 주어진다. 다각형의 각 변은 수직이거나 수평이다. 다각형은 자기 자신과 교차하거나 접하지 않으며, 이웃한 두 변이 평행한 경우도 없다.

그다음 줄에 질의의 수 qq (1≤q≤100 0001 \le q \le 100\,000)가 주어진다. 다음 qq개 줄 가운데 kk번째 줄에는 kk번째 질의인 정수 tkt_k (1≤tk≤1091 \le t_k \le 10^9)가 주어진다.

출력

kk번째 줄에 주어진 영역의 최적 tkt_k-근사의 넓이를 출력한다.

힌트

그림의 영역에서 구간 [3,29][3, 29], [33,33][33, 33], [36,37][36, 37]은 최적 3-근사를 이룬다. 세 구간의 합집합의 넓이는 30이다.

예제1

  1. 예제 1

    입력
    3
    8
    1 1
    5 1
    5 4
    3 4
    3 8
    0 8
    0 5
    1 5
    4
    2
    3
    5
    7
    
    예상 출력
    32
    30
    26
    24