【ACM】N皇后问题】的更多相关文章

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2553 中文题目,题意很简单. 思路:听说这是学习递归的经典题目,就来试试,发现自己一点想法都没有,一遇到递归,就懵逼.于是看了别人的代码,自己一步一步的看了几遍,然后自己又敲了一遍.对回溯递归有了新的认识. 由题意可知,每一行有且仅有一颗棋子,curRow代表当前将要下棋的行数.下棋是一行一行的遍历,下完,再遍历下一行,每次下棋都要看是否符合题意:1,不能与其他棋子同行或同列,不能和其他棋子是对角线.所…
(一)八皇后问题 (1)回溯 #include <iostream> #include <string> #define MAXN 100 using namespace std; int tot = 0, n = 8; int C[MAXN]; void search(int cur) { if(cur == n) ++tot; //递归边界,仅仅要走到了这里.全部皇后必定不冲突 else for(int i = 0; i < n; ++i) { int ok = 1; C…
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题. 其解决办法和我以前发过的[算法之美—Fire Net:www.cnblogs.com/lcw/p/3159414.html]类似 题目:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. #include <stdio.h> ; //全局变量,统计所有解法 ] ) //判断是否存在危险 { , flag2=, flag3=, flag4=, flag5=; //…
N皇后问题 #include <iostream> #include <cmath> using namespace std; ; //判断当前位置的皇后加入是否成立 bool judge(int k,int *a){ ; i < k; i++){ //i代表棋盘上第i行,a[i]代表皇后在第a[i]列 if(a[i]==a[k]){//在正下方 return false; } if(abs(k-i)==abs(a[k]-a[i])){//在斜线上 return false;…
leetcode代码 利用堆栈:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/http://oj.leetcode.com/problems/longest-valid-parentheses/ (也可以用一维数组,贪心)http://oj.leetcode.com/problems/valid-parentheses/http://oj.leetcode.com/problems/largest-rectang…
1. 几何 4 1.1 注意 4 1.2 几何公式 4 1.3 多边形 6 1.4 多边形切割 9 1.5 浮点函数 10 1.6 面积 15 1.7 球面 16 1.8 三角形 17 1.9 三维几何 19 1.10 凸包 26 1.11 网格 28 1.12 圆 28 1.13 整数函数 30 2. 组合 33 2.1 组合公式 33 2.2 排列组合生成 33 2.3 生成gray码 35 2.4 置换(polya) 35 2.5 字典序全排列 36 2.6 字典序组合 36 3. 结构…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553 N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.你的任务是,对于给定的N,求出有多少种合法…
首先,我想说的就是,我是一个很普通的ACMer,高中没有参加过任何计算机和数学竞赛的经历,也没有ben那样过人的天资,努力至今也未能取得什么成绩,我之所以写下这篇文章,只是希望给刚进大学或者刚进ACM队的同学一点小小的帮助,希望你们可以少走一些弯路,更希望你们可以帮助华理取得我没能取得的辉煌. (1).起步阶段 我是从大二开始接触ACM的,要说基础的话就是大一的C语言课程了,语言方面的基础也弱,不过ACM起步阶段对于语言的要求并不是太高,只要掌握了学校C语言的课程,基本就可以开始你ACM的历程了…
ACM学习<二>   穷举算法思想:     一句话:就是从所有可能的情况,搜索出正确的答案. 步骤:     1.对于一种可能的情况,计算其结果.     2.判断结果是否满足,YES计算下一个,no继续步骤1,然后判断下个可能的情况. 实例:     孙子算经--鸡兔同笼:头35,脚94,几鸡几兔?           #include <iostream> //头文件 using namespace std; int qiongju(int head, int foot ,…
ACM主要算法ACM主要算法介绍 初期篇 一.基本算法(1)枚举(poj1753, poj2965)(2)贪心(poj1328, poj2109, poj2586)(3)递归和分治法(4)递推(5)构造法(poj3295)(6)模拟法(poj1068, poj2632, poj1573, poj2993, poj2996)二.图算法(1)图的深度优先遍历和广度优先遍历(2)最短路径算法(dijkstra, bellman-ford, floyd, heap+dijkstra)(poj1860,…