SHAOXIAOJ正在加载中...

2632: 回溯法-N后问题

金币值:3 定数:9 时间限制:1.000 s 内存限制:128 M
正确:3 提交:3 正确率:100.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 算法设计

题目描述

已知有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