比赛 状态压缩DP 评测结果 AAAAAAAAAATTTTTTTTTT
题目名称 棋盘上的車 最终得分 50
用户昵称 Xiaokang_Zhao120 运行时间 10.687 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2018-06-24 15:51:24
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;

int n;
int tot=0,C[21];

/*void print()
{
    tot++;
    if(tot<=3)
    {
        for(int i=0;i<n-1;i++)
            printf("%d ",C[i]+1);
        printf("%d\n",C[n-1]+1);
    }
    return;
}这不就是简单版的八皇后吗*/
void searchh(const int & cur)
{
    if(cur==n)
        tot++;
    else
        for(int i=0;i<n;i++)
        {
            int ok=1;
            C[cur]=i;
            for(int j=0;j<cur;j++)
                if(C[cur]==C[j])
                {
                    ok=0;
                    break;
                }
            if(ok)
                searchh(cur+1);
        }
    return;
}

int main()
{
    freopen("rook.in","r",stdin);freopen("rook.out","w",stdout);
    scanf("%d",&n);
    searchh(0);
    printf("%d\n",tot);
    return 0;
}