컴퓨터 게임

시간 제한1초메모리 제한128 MB

요약
블록된 칸이 있는 다이아몬드 모양 격자에서, 4방향으로 연결된 빈 칸들의 부분집합 개수를 모두 세는 문제입니다.
난이도

보통10점 중 6점

유형
완전 탐색, 그래프, 비트 연산, DFS
정답자
아직 제출이 없습니다

문제

존(John)과 브루스(Brus)가 컴퓨터로 전략 게임을 하고 있다. 게임은 평평한 지도 위에서 진행된다. 먼저 브루스가 자신의 군대를 배치하면, 존은 다음 규칙에 따라 자기 군대의 전략 지점을 골라야 한다.

  • 각 전략 지점은 ∣x∣+∣y∣<N|x| + |y| < N을 만족하는 격자점 (x,y)(x, y)(좌표가 정수인 점)이어야 한다.
  • 존은 양의 정수 개수만큼 전략 지점을 고를 수 있다.
  • 고른 전략 지점은 모두 서로 달라야 한다.
  • 각 전략 지점은 비어 있어야 한다. 즉, 브루스의 군대가 차지하고 있지 않아야 한다.
  • 고른 전략 지점들의 모든 쌍은, 오직 고른 다른 전략 지점들만을 거쳐서 서로 연결되어야 한다.

서로 다른 두 격자점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)는 ∣x1−x2∣+∣y1−y2∣=1|x_1 - x_2| + |y_1 - y_2| = 1일 때 서로 인접(직접 연결)한다. 연결은 고른 점들을 통해 추이적으로 이어진다. 즉, 고른 점 AA와 BB가 인접하고 BB와 CC가 인접하면 AA와 CC는 연결되어 있다. 다시 말해, 고른 점들의 집합은 이 인접 관계 아래에서 하나의 연결된 영역을 이루어야 한다.

존이 전략 지점을 고르는 방법의 수를 구하라.

입력

첫 줄에는 정수 TT, 즉 테스트 케이스의 수가 주어진다. 각 테스트 케이스는 두 정수 NN과 MM이 적힌 줄로 시작한다. NN은 첫 번째 규칙에서 쓰이는 값이고, MM은 브루스의 군대가 이미 차지한 격자점의 수이다. 이어지는 MM개의 줄에는 각각 차지된 점의 좌표 XkX_k와 YkY_k가 주어진다.

제약: 1≤T≤741 \le T \le 74, 1≤N≤71 \le N \le 7, 1≤M≤2251 \le M \le 225, −7≤Xk,Yk≤7-7 \le X_k, Y_k \le 7이며, 모든 (Xk,Yk)(X_k, Y_k)는 서로 다르다.

출력

각 테스트 케이스마다, 존이 전략 지점을 고르는 방법의 수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    2
    2 1
    7 7
    2 3
    0 0
    4 -7
    7 -4
    
    예상 출력
    20
    4