[POJ - 1321] 체스 (DFS)

체스 판

조각 조각 이상 차이가 배치되지 바둑판 소정 형상 (모양이 불규칙적 일 수있다)이다. 디스플레이가 요구되는 경우 두 가지의 요구 사항은 모든 가능한 배치 방식 (C)의 K 개를 소정의 기판의 크기 및 형상을 해결 배치하는, 동일한 행 또는 보드에서 동일한 열에있는 프로그램을 배치 할 수 없다

입력

데이터의 복수의 세트를 포함하는 테스트 입력. 
각 데이터의 첫 번째 줄의 공간에 의해 분리 된 두 개의 양의 정수, NK을하고, 기판의 수가 n 개 * n의 매트릭스 형으로 설명한다 나타내고, 조각을 넣어. N <= 8, K <=  N
입력의 끝은 -1로 표시되는 경우 -1. 
그런 다음 n 개의 라인들 바둑판 모양 설명 : N #은 보드 공간을 나타내는 라인 당 문자를 빈 영역 (여분의 빈 줄 데이터가 나타나거나 빈 열을하지 않는 보장)을 나타냅니다. 

산출

데이터의 각 세트에 대해, 하나 개의 출력 라인은 출력 표시 프로그램 C (데이터 보장 C ^ 31 <2)의 번호가 부여된다.

샘플 입력

2 1

#.

. #

4 4

... #

.. #.

. # ..

# ...

-1 -1

샘플 출력

1

주제 링크 :

https://vjudge.net/problem/POJ-1321

AC 코드 :

1 #INCLUDE <iostream>
 2 #INCLUDE <cstdio>
 3 #INCLUDE <fstream>
 4 #INCLUDE <알고리즘>
 5 #INCLUDE <cmath>
 6 #INCLUDE <양단>
 7 #INCLUDE <벡터>
 8 #INCLUDE <큐>
 9 # 포함 < 문자열 >
 10 #INCLUDE <CString을>
 11 #INCLUDE <지도>
 12 #INCLUDE <적층>
 13 #INCLUDE < 설정 >
14  #DEFINE 모드 1,000,000,007
 (15)  #DEFINE이 어떠냐 오래 오래
 (16)  #DEFINE의 INF의 0x3f3f3f3f
. (17)  은 USING  스페이스 STD,
 18은  문자 MP [ 15 ] [ 15 ]
 . 19  INT VIS [ 15 ]; // 컬럼 
(20)는  INT , K N-,
 (21)는  INT의 SUM = 0 ]
 (22)가  무효 DFS ( INT의 X, INT의 CNT) // X 현재의 행에 대한 디스플레이의 부분의 현재 번호에 대한 탄소 나노 튜브 
(23)는  {
 24      IF (CNT == K)이
 25      {
 26은          SUM ++ ;
 (27)      }
 (28)      에 대해 (INT I = X; I <N-; I ++ )
 29      {
 30           ( INT J = 0 ; J <N-, J ++ )
 (31)가          {
 32              IF (MP [I] [J] == ' # ' && VIS [J] == 0 ) //는 이 열 전달 여부를 판정 
(33)가              {
 34은                  VIS [J] = . 1 ;
 35                  (I는 + DFS 1. , CNT + 1이다. )
 (36)                  VIS [J]를 = 0 ,
 37              }
 38이다          }
 39     }
 40  }
 41는  INT () 본체
 (42)가  {
 43은      그동안 (CIN >> N- K)
 (44)가      {
 45          IF (- == - N . 1 - && K == . 1 )
 (46)가              BREAK ;
 47          다른 
48          {
 49              // 모든 갱신 
50              SUM = 0 ;
 51이다              가 memset (VIS, 0 , sizeof의 (VIS))
 (52)는              에 대해 ( INT는 = I 0 ; I는 <I는 N- ++ )
 53 인                  ( INT의 J = 0 ; J <N; ++ J )
 54                      CIN >> MP [I] [J]
55              DFS ( 0 , 0 );
56          }
 57          COUT << 합 << ENDL;
58      }
 59 }

 

추천

출처www.cnblogs.com/sky-stars/p/10963005.html