0.Quân hậu


Submit solution

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

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

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


  • 1
    nqson  commented on June 15, 2023, 10:38 a.m.

    tham khảo python 3 (lụm đâu đó trên mạng):

    def queens(n, i, a, b, c):
        if i < n:
            for j in range(n):
                if j not in a and i+j not in b and i-j not in c:
                    yield from queens(n, i+1, a+[j], b+[i+j], c+[i-j])
        else:
            yield a
    
    print(len(list(queens(int(input()),0,[],[],[]))))

  • 0
    LãoTam  commented on Sept. 10, 2021, 5:02 p.m. edited

    [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, 5: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, 5: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ì


      • 0
        LãoTam  commented on Sept. 12, 2021, 8:38 a.m.

        thanks