八皇后 回溯法

#include<bits/stdc++.h>
using namespace std;

const int Max=100;
int n,p[Max],answer=0;
bool hashTable[Max]= {0};

void generateP(int index) {
    if(index==n+1) {
        answer++;
        return ;
    }
    for(int i=1; i<=n; i++) {
        if(!hashTable[i]) {
            bool flag=1;
            for(int j=1; j<index; j++) {
                if(abs(index-j)==abs(i-p[j])) {
                    flag=0;
                    break;
                }
            }
            if(flag) {
                p[index]=i;
                hashTable[i]=1;
                generateP(index+1);
                hashTable[i]=0;
            }
        }
    }
}

int main() {
    cin>>n;
    generateP(1);
    cout<<answer;
    return 0;
}
全部评论

相关推荐

牛油果甜奶昔:别的先不说,牛客还能内推护士?
点赞 评论 收藏
分享
09-28 01:10
中山大学 运营
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务