검색 단계 - 바둑판 문제
5534 단어 수색 하 다.
바둑판 문제
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
주어진 모양 의 바둑판 (모양 이 불규칙 할 수 있 음) 위 에 바둑 알 을 놓 으 면 바둑 알 은 차이 가 없다.배치 할 때 임의의 두 개의 바둑 알 을 바둑판 의 같은 줄 이나 같은 열 에 놓 을 수 없습니다. 주어진 모양 과 크기 의 바둑판 에 대해 K 개의 바둑 알 을 배치 할 수 있 는 모든 실행 가능 한 배치 방안 C 를 프로 그래 밍 하 십시오.
Input
여러 그룹의 테스트 데 이 터 를 입력 하 십시오.
각 조 데이터 의 첫 줄 은 두 개의 정수, n k 로 빈 칸 으로 나 누 어 n * n 의 행렬 에서 바둑판 을 묘사 하고 바둑 알 을 놓 는 수 를 나타 낸다.n <= 8 , k <= n
- 1 - 1 일 때 입력 이 끝 났 음 을 표시 합 니 다.
다음 n 줄 은 바둑판 의 모양 을 묘사 했다. 줄 마다 n 개의 문자 가 있 는데 그 중에서 \ # 는 바둑판 구역 을 나타 낸다. 공백 구역 을 나타 낸다 (데 이 터 는 불필요 한 공백 줄 이나 공백 열 이 나타 나 지 않도록 보증한다).
Output
각 그룹의 데이터 에 대해 한 줄 의 출력, 출력 배치 방안 의 수량 C (데이터 보증 C < 2 ^ 31) 를 드 립 니 다.
Sample Input
2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1
Sample Output
2
1
CODE:
#include<iostream>
using namespace std;
#define N 10
int n, k, cou, visit[N] = {0}; // cou , visit
char maps[N][N]; //
void DFS(int line, int t); // line ,t
int main()
{
int i, j;
while(1)
{
cin >> n >> k;
if(n == -1 || k == -1)
break;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
cin >> maps[i][j];
cou = 0;
DFS(0, 0); // 0 , 0;
cout << cou << endl;
}
return 0;
}
void DFS(int line, int t)
{
if(t == k) // k ,cou +1,
{
cou++;
return ;
}
if(line >= n) // return
return;
for(int i = 0; i < n; i++) // ,
{
if(visit[i] == 0 && maps[i][line] == '#') // , , +1,
{
visit[i] = 1;
DFS(line+1, t+1);
visit[i] = 0; // 0
}
}
DFS(line+1, t); //
}
®
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
제1 6 장 파일 에서 텍스트 검색 도구: grep 명령 과 egrep 명령제1 6 장 파일 에서 텍스트 검색 도구: grep 명령 과 egrep 명령 옵션 grep 명령 파일 에서 단 어 를 검색 하면 명령 은 "match pattern"을 포함 하 는 텍스트 줄 을 되 돌려 줍 니 다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.