kobellover


私信TA

用户名:kobellover

访问量:2999

签 名:

等  级
排  名 2945
经  验 2012
参赛次数 0
文章发表 27
年  龄 0
在职情况 学生
学  校 扬州大学
专  业

  自我简介:

TA的其他文章

#include<iostream>

using namespace std;

int a[100][100],n,ans=0;

bool vis1[100],vis2[100];

bool x1[100],y1[100],x2[100],y2[100];

void dfs(int r){

    if(r==n+1){

        ans++;

        return ;

    }

    for(int i=1;i<=n;i++){

        if(!vis1[i]&&a[r][i]&&!x1[r+i]&&!y1[r-i+n]){

            vis1[i]=x1[r+i]=y1[r-i+n]=true,a[r][i]=0;

            for(int j=1;j<=n;j++){

                if(!vis2[j]&&a[r][j]&&!x2[r+j]&&!y2[r-j+n]){

                    vis2[j]=x2[r+j]=y2[r-j+n]=true,a[r][j]=0;

                    dfs(r+1);

                    vis2[j]=x2[r+j]=y2[r-j+n]=false,a[r][j]=1;

                }

            }

            vis1[i]=x1[r+i]=y1[r-i+n]=false,a[r][i]=1;

        }

    }

}

int main()

{

    cin>>n;

    for(int i=1;i<=n;i++){

        for(int j=1;j<=n;j++){

            cin>>a[i][j];

        }

    }

    dfs(1);

    cout<<ans<<endl;

    return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区