作业帮 > 综合 > 作业

分支限界算法——n皇后问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 02:33:25
分支限界算法——n皇后问题
问题描述:
在n×n 格的棋盘上放置彼此不受攻击的n 个皇后.按照国际象棋的规则,皇后可以攻
击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于在n×n格的棋盘上放置n
个皇后,任何2个皇后不放在同一行或同一列或同一斜线上.
编程任务:
设计一个解n 后问题的队列式分支限界法,计算在n´ n个方格上放置彼此不受攻击的
n个皇后的一个放置方案.
数据输入:
由文件input.txt给出输入数据.第一行有1 个正整数n.
结果输出:
将计算出的彼此不受攻击的n个皇后的一个放置方案输出到文件output.txt.文件的第1
行是n个皇后的放置方案.
输入文件示例 输出文件示例
input.txt output.txt
5 1 3 5 2 4
证明为什么用分支限界算可行?
#include
#include
#include
long sum=0;
int count=0;
int place(int k,int*p)
{
\x09for(int j=1;j0){
\x09\x09p[k]+=1;
\x09\x09while((p[k]