八皇后 无回溯

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

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

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


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

相关推荐

10-17 23:18
已编辑
西北农林科技大学 Web前端
独行m:给25可以试试,但他只能给12,那就是纯纯的事精
秋招,不懂就问
点赞 评论 收藏
分享
想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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