음양의 길 (Large)

N행 M열 격자를 흑백으로 칠할 때 각 색 칸이 변을 공유해 하나의 경로를 이루는 경우의 수를 셉니다.

어려움9조합론그래프아직 제출이 없습니다시간 제한120초메모리 제한512 MB

문제

NNMM열 격자의 각 칸을 검은색(음) 또는 흰색(양)으로 칠한다. 두 칸이 길이가 1인 변을 공유하면 이웃이라고 한다. 검은 칸 전체가 하나의 경로를 이루고 흰 칸 전체도 하나의 경로를 이루면 그 격자를 유효한 격자라고 한다. 칸의 집합 SS가 경로라는 것은 다음 세 조건을 모두 만족한다는 뜻이다.

  • SS는 연결되어 있다. SS의 어느 칸에서 출발하든 SS 안의 이웃만 거쳐 SS의 나머지 칸에 모두 도달한다.
  • SS 안에서 이웃이 정확히 하나인 칸이 정확히 두 개 있다. 이 두 칸을 경로의 끝이라고 한다.
  • 나머지 칸은 모두 SS 안에서 이웃이 정확히 둘이다.

아래 그림에서 첫 번째 격자는 유효하다. 두 번째 격자는 검은 칸이 경로를 이루지만 흰 칸이 경로를 이루지 않아 유효하지 않다.

NNMM이 주어질 때 유효한 격자가 몇 개인지 구한다. 회전하거나 뒤집어서 겹치는 두 격자라도 한 칸이라도 색이 다르면 서로 다른 격자로 센다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에 각각 두 정수 NNMM이 공백으로 구분되어 주어진다.

출력

각 테스트 케이스마다 Case #x: A 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, AA는 주어진 크기에서 유효한 격자의 개수이다.

제한

  • 1T501 \le T \le 50
  • 4N,M144 \le N, M \le 14