N皇后问题
来源:互联网 发布:苏州十大网络教育机构 编辑:程序博客网 时间:2024/04/30 09:36
N皇后问题:在一个N行N列的棋盘上,放N个皇后,并且保证任意两个皇后不在同一行、同一列、同一对角线上,共有多少种放法?
解决方法见代码。函数nonconflict用于判断皇后之间是否有攻击现象;函数queencore用于递归计算符合条件的放法;queens函数是接口函数。
state数组第i个元素表示第i行,state[i]表示第state[i]列,即state数组表示第i行、第state[i]列放一个皇后。
bool nonconflict(int* state, int len, int next){for(int i = 0; i < len; i++)if(*(state + i) == next || abs(*(state + i) - next) == len - i)return false;return true;}int queencore(int* state, int row, int n){if(row == n)return 1;int result = 0;for(int i = 0; i < n; i++){if(nonconflict(state, row, i)){*(state + row) = i;result += queencore(state, row + 1, n);}}return result;}int Queens(int n){if(n < 1)return 0;int* state(new int[n]);int count(0);count = queencore(state, 0, n);delete state;return count;}
0 0
- N*N皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N 皇后问题
- N皇后问题
- N皇后问题算法
- N 皇后问题
- N皇后问题
- N皇后问题
- n皇后问题
- N皇后问题
- N皇后问题优化
- N皇后问题
- n皇后问题
- N皇后问题
- 黑马程序员03
- 2014 ACM/ICPC 上海区域赛小记
- jsp内置对象值application对象
- util包下的map和collection接口下的link和set实现类
- sgu120
- N皇后问题
- 二叉树前序,中序,后续遍历(递归和非递归)
- oracle 11.2.0.4 rac 恢复到单实例
- libstdc++5的安装
- 5.判断一个链表是否存在环
- 赫夫曼编码
- Brownie Points II - POJ 2464 线段树
- 自定义Android标题栏TitleBar布局
- javascript开发人员的10个关键习惯