0.Quân hậu


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type

Cho một bàn cờ vua có kích thước n * n, ta biết ràng quân hậu có thể di chuyển theo chiều ngang, dọc, chéo. Vấn đề đặt ra rằng, có n quân hậu, bạn cần đếm số cách đặt n quân hậu này lên bàn cờ sao cho với 2 quân hậu bất kì, chúng không “ăn” nhau.

Input

Một số nguyên n duy nhất (n <= 10)

Output

Số cách đặt quân hậu.

Example

Input:

4

Output:

2

Comments


  • 0
    Pháp_K61_CNTT6  commented on Sept. 10, 2021, 1:02 p.m.

    [user:^_^ tham khảo]


    include<bits/stdc++.h>

    using namespace std;

    define M 102

    int n,x[M],d=0;
    bool cot[M],cheo1[M],cheo2[M];
    void qlhoanvi(int i){
        for(int j=1;j<=n;j++)
        if(!cot[j] && !cheo1[i-j+n] && !cheo2[i+j-1]){
            x[i]=j;
            cot[j]=true;
            cheo1[i-j+n]=true;
            cheo2[i+j-1]=true;
            if(i==n)
            d++;
            else 
            qlhoanvi(i+1);
            cot[j]=false;
            cheo1[i-j+n]=false;
            cheo2[i+j-1]=false;
    
        }
    }

    int main(){ cin>>n; qlhoanvi(1); cout<<d<<endl; return 0; }

    ....


    • 0
      ga123  commented on Sept. 11, 2021, 1:13 a.m.

      cái mảng x này là do lúc đầu làm bài này ở trong hàm main , nên mới cần 1 biến để lưu :3 nhưng vì chuyển sang hàm ngoài nên mảng x bị thừa


    • 0
      ga123  commented on Sept. 11, 2021, 1:12 a.m.

      bài này bỏ khai báo mảng x đi cũng không sai kết quả, vì mảng x không có tác dụng gì