문제 설명
당신은 15 개 수의 세포와 빈 셀로 구성된 4 × 4 격자를, 주어진다.
모든 수치는 고유하고 (15) (1)로부터 원거리
빈 셀에 이동할 수있는 빈 셀과 인접 셀이 보드.
당신의 작업은 아래 그림과 같이 대상 그리드에 입력 그리드를 만드는 것입니다.
다음의 예 (샘플 입력)에서는 두 개의 이동에서 대상 그리드를 얻을 수 있습니다.
모든 수치는 고유하고 (15) (1)로부터 원거리
빈 셀에 이동할 수있는 빈 셀과 인접 셀이 보드.
당신의 작업은 아래 그림과 같이 대상 그리드에 입력 그리드를 만드는 것입니다.
다음의 예 (샘플 입력)에서는 두 개의 이동에서 대상 그리드를 얻을 수 있습니다.
![](http://acm.hdu.edu.cn/data/images/C851-1007-1.jpg)
입력
첫 번째 라인은 테스트 케이스의 수를 나타내는 정수 T (1 <= T <= 10 ^ 5)을 포함한다.
각 시험은 각각 네 줄, 네 개의 공간 분리 된 정수를 포함하는 입력을 나타내는 격자로 구성된다. 0은 빈 셀을 나타냅니다.
각 시험은 각각 네 줄, 네 개의 공간 분리 된 정수를 포함하는 입력을 나타내는 격자로 구성된다. 0은 빈 셀을 나타냅니다.
산출
각 테스트 케이스의 경우, 한 줄에 답을 인쇄 할 수 있습니다.
당신은 120 개 이동에서 대상 그리드를 얻을 수없는 경우 '없음', 다른 인쇄 '예'를 인쇄 할 수 있습니다.
당신은 120 개 이동에서 대상 그리드를 얻을 수없는 경우 '없음', 다른 인쇄 '예'를 인쇄 할 수 있습니다.
샘플 입력
2 1 2 3 4 5 6 7 8 9 10 0 12 13 14 11 15 1 2 3 4 5 6 7 8 9 10 11 12 13 15 14 0
샘플 출력
예 아니오
결론 : 소 풀수 문제 : 빈 또는 역순의 수의 패리티의 현재 값을 결정할지 여부를 현재의 라인 간격의 패리티
코드 :
#INCLUDE <cstdio> #INCLUDE <iostream> #INCLUDE <알고리즘> #INCLUDE <CString을> #INCLUDE <큐> #INCLUDE <적층> #INCLUDE < 설정 > #INCLUDE <지도> #INCLUDE <벡터> #INCLUDE <cmath> CONST의 INT maxn 1E5 + = 5 ; 타입 정의 긴 긴 LL; 사용하는 네임 스페이스 표준을; int로 A [ 25 ]; INT의 CC [ 25 ]; INT 의 main () { INT 티; CIN >> T; INT의 K = 0 ; 반면 (T-- ) { INT에서 CNT = 0 ; 대 ( INT의 t = 0 ; t < 4 ; t ++ ) { 대 ( INT의 J = 0 ; J < 4 ; J ++ ) { 는 scanf ( " %의 D ' , A [t의 * 4 + J]); 경우 (a [t * 4 + J]! = 0 ) { CC [CNT는 ++]는 [t * = 4 + J를]; } 경우 (a [t * 4 + J] == 0 ) { K = t; } } } INT의 합 = 0 ; 대 ( INT의 t = 0 ; t < 15 ; t ++ ) { 대 ( INT J = t + 1 , J < 15 ; J ++ ) { 경우 (CC [J] <공통 [의 t]) { 합 ++ ; } } } 경우 ((( 3 -k) % 2 ) ^ (% 합 2 ) == 0 ) { 둔다 ( " 예 " ); } 다른 { 풋 ( " 아니오 " ); } } 반환 0 ; }