2632: 回溯法-N后问题
金币值:3
定数:9
时间限制:1.000 s
内存限制:128 M
正确:3
提交:3
正确率:100.00% 命题人:
题目描述
已知有n(1<=n<=10)个皇后,要求放到n行n列的棋盘中,使得任意一行、任意一列以及任意一个对角线不能出现两个及两个以上的皇后,计算N后问题有多少种不同的放法 。此题是不是全排列问题?如果是的话是否可以采用全排列框架来写。
测试代码 复制
#include <stdio.h>
#include <math.h>
int x[11]; // xi表示第i个皇后存放的列位置(假设第i个皇后放在棋盘中的第i行),0号不存储有效数据
int sum=0; // 记录当前已找到的可行方案数量,初始化为0
int n; //存储皇后的个数
int place(int i) {//检查第i个皇后的列位置与前i-1个皇后的位列位置是否冲突
}
void backtrack(int i) {
if(i>n) {
sum++;
} else {
}
}
int main(void) {
scanf("%d",&n);
backtrack(1);
printf("%d\n",sum);
return 0;
}
输入格式
输入一个整数表示皇后的个数
输出格式
输出满足条件的不同放法数量
输入样例 复制
8
输出样例 复制
92