N 후 문제
/**
* N
*/
//#define LOCAL
#include <stdio.h>
#include <string.h>
#define MAXN 50 + 10
int qeen[MAXN][MAXN];
int rLine[2 * MAXN];
int lLine[2 * MAXN];
int col[MAXN];
int n;
int count;
void mytry(int x);
void printGraph();
int main()
{
#ifdef LOCAL
freopen("C:\\Users\\Administrator\\Desktop\\Temp\\ACMTempIn.txt", "r", stdin);
//freopen("C:\\Users\\Administrator\\Desktop\\Temp\\ACMTempOut.txt", "w", stdout);
#endif
while(scanf("%d" , &n) != EOF && n <= 50)
{
//
printf("%-2d
", n);
//
count = 0;
memset(col, 0, sizeof(col));
memset(rLine, 0, sizeof(rLine));
memset(lLine, 0, sizeof(lLine));
memset(col, 0, sizeof(col));
//
mytry(0);
//
printf("Count = %d
", count);
}
return 0;
}
void mytry(int x)
{
int i;
for(i = 0; i < n; i++)
{
if(!qeen[x][i]&&!rLine[x + i]&&!lLine[x - i + n]&&!col[i])
{
rLine[x + i] = true;
lLine[x - i + n] = true;
col[i] = true;
qeen[x][i] = 1;
if(x == n - 1)
{
count++;
printGraph();
}
else
mytry(x + 1);
rLine[x + i] = false;
lLine[x - i + n] = false;
col[i] = false;
qeen[x][i] = 0;
}
}
return ;
}
void printGraph()
{
int i, j;
printf("Case %-2d :
", count);
for(i = 0; i < n; i++)
{
printf("%-2d :", i + 1);
for(j = 0; j < n; j++)
{
printf(" %d", qeen[i][j]);
}
printf("
");
}
printf("
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.