1019 of search

2048 단어
N 황후 문제
Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 56   Accepted Submission(s) : 26
Problem Description
N * N 의 네모 난 바둑판 에 N 개의 황 후 를 배치 하여 서로 공격 하지 않도록 합 니 다. (즉, 임의의 2 개의 황 후 는 같은 줄 에 있 는 것 을 허락 하지 않 습 니 다. 같은 열 에 있 는 것 도 허락 하지 않 습 니 다. 바둑판 테두리 와 45 각 의 사선 에 있 는 것 도 허락 하지 않 습 니 다. < br > 당신 의 임 무 는 주어진 N 에 대해 몇 가지 합 법 적 인 배치 방법 을 구 하 는 것 입 니 다. < br > < br >
 
Input
모두 몇 줄 이 있 고 각 줄 의 정수 N ≤ 10 은 바둑판 과 황후 의 수량 을 나타 내 며 N = 0 이면 끝 을 나타 낸다.
 
Output
모두 몇 줄 이 있 고 줄 마다 정수 가 있 으 며 입력 줄 에 대응 하 는 황후 의 서로 다른 배치 수량 을 나타 낸다.
 
Sample Input

   
   
   
   
1<br>8<br>5<br>0<br><br>

 
Sample Output

   
   
   
   
1<br>92<br>10<br><br>

 
Author
cgf
 
Source
2008 HZNU Programming Contest
 제목 요구: n 단계 방진 에 n 개의 황 후 를 넣 어 각 줄 과 경사 대각선 에 다른 황후 가 없 도록 한다.
 문제 풀이 방향: 이것 은 전형 적 인 문제 입 니 다. 만약 에 일반적인 dfs 가 시간 을 초과 하면 다른 사람의 블 로 그 를 알 아 보지 못 하지만 억지로 이틀 을 본 후에 야 알 아 보 았 습 니 다.
   그래서 가능 한 방법 은 1 표 n 이 10 이내 이기 때문에 계산 만 하면 된다.
                     2. 역 추적 법 으로 첫 줄 에서 마지막 줄 까지 한 번 도 완성 하지 못 하고 한 번 표시 하고 한 번 위로 거 슬러 올 라 가 다음 에 취 할 수 있 는 위 치 를 취하 고 마지막 으로 초기 상태 로 거 슬러 올 라 가 끝 이 없다. 3. 비트 연산 으로 조작 하면 시간 을 크게 압축 할 수 있 지만 이해 하기 어렵다. 반드시 비트 연산 이 익 어야 한다. 물론 같은 2 법 이다. 비트 에 따라 연산 하고 저장 할 뿐이다.。
   
# include <iostream>
using namespace std; 
int main()
{
    int n;
    int a[11] = {0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724};
    while(cin >> n)
    {
        if(n == 0)
        break;
        cout << a[n] << endl;
    }
    return 0;
}

좋은 웹페이지 즐겨찾기