n后问题
来源:互联网 发布:淘宝3天不发货如何投诉 编辑:程序博客网 时间:2024/05/09 23:38
关键问题:不在同行,同列,斜线上。即对任意两行,!(x[r1]==x[r] || abs(r1-r)==abs(x[r1]-x[r]))。用回溯法,通过此条件进行减枝。
#include <iostream> using namespace std;void print(int *x, int n){int i, j;for(i=0; i<n; i++){for(j=0; j<n; j++){if(x[i]==j)cout<<"1"<<" ";elsecout<<"0"<<" ";}cout<<endl;}cout<<endl;}bool place(int r, int *x){for(int r1=0; r1<r; r1++){if(x[r1]==x[r] || abs(r1-r)==abs(x[r1]-x[r]))return false;}return true;}void backtrack(int r, int* x, int n){if(r==n){print(x, n);return ;}for(int i=0 ;i<n; i++){x[r] = i;if(place(r, x))backtrack(r+1, x, n);}}void nQueen(int n){if(n<4)cout<<"n should be larger than 3."<<endl;int *x = new int[n];int i;for(i=0; i<n; i++)x[n] = 0;backtrack(0, x, n);}int main(){ nQueen(4);return 0;}
- n后问题
- N后问题
- n后问题
- n后问题之一
- N后问题
- N 后问题
- n后问题
- shu_p64 n后问题
- n后问题
- n后问题
- n后问题
- N后问题
- n后问题
- n后问题c++
- n后问题
- n后问题
- 【算法】N后问题
- n后问题
- 最长连续序列(O(n)算法)
- 原码反码补码
- 设计模式之观察者模式
- eclipse报PermGen space
- linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
- n后问题
- 近期刷题的c语言总结。
- POJ 1458简单的动态规划:求最长子序列
- 闪回技术之数据库级闪回特别篇1
- 云计算初步认识
- mysql数据类型介绍(含text,longtext,mediumtext说明)
- java跨平台项目-lisa
- C++库研究笔记—— [真正正确?]多维数组动态分配正确方式?(之一)
- 了解API中的类和超类等