"여덟 퀸 문제"의 두 판 사이의 차이

913 바이트 추가됨 ,  10년 전
잔글 (로봇이 더함: ca, cs, da, de, es, fa, fr, he, hu, it, ja, ka, pl, pt, ru, sl, sr, th, tr, vi, zh)
 
== 연관 문제 ==
*''' 다른 기물 사용 '''
나이트, 비숍등에 대해서도 해를 찾을 수 있다.
32개의 나이트, 14개의 비숍, 8개의 룩, 16개의 킹이 필요하다.
*''' 다른 판 모양 '''
토러스형이나 원통형 조건에 대해 생각할 수 있다. 토러스에서는 폴리아의 연구에 의해 n이 6과 서로소일때 nxn정사각형판에 n개의 퀸을 채울 수 있다.
*'''지배'''
최소한의 퀸을 써서 모든칸을 공격하는 것이다. 8x8에서는 5개가 필요하다.
== 소스 ==
<source lang="c">
#include <iostream>
 
using namespace std;
 
int board[12];
int n;
int cnt;
 
void path(int y) {
int ko = 1;
if( y == n ) {
cnt++;
return;
}
for( int i=0; i<n; i++ ) {
ko = 1;
for( int j=0; j<y; j++ ) {
if( board[j] == i || abs(y-j) == abs(i-board[j]) ) {
ko = 0;
break;
}
}
if( ko ) {
board[y] = i;
path(y+1);
}
}
}
 
int main() {
int k;
cin >> k;
 
while( k-- ) {
cin >> n;
cnt = 0;
path(0);
 
cout << cnt << '\n';
}
 
return 0;
}
</source>
 
[[분류:퍼즐]]

편집

29