数据结构之回溯法
来源:互联网 发布:巴西衰落知乎 编辑:程序博客网 时间:2024/04/24 12:12
数据结构书上讲了下回溯法,于是在hdu找了个题目:HDU 2553 N皇后问题
http://acm.hdu.edu.cn/showproblem.php?pid=2553
// 采用深度搜索的方式进行搜索,每次放置一个皇后是都得用check()函数进行判断,要是可以放下去,则皇后数目加一,继续进行深度搜索
//这里采用的不是传统的二维数组,而是一位数组 queen[n] = i;其中n是行的数目,也是皇后的数目,i是列的数目
//这题还有一个特点是测试的数据特别多,因此如果不将第一次获得的数据保存在数组中的话,下次则还要重新计算,绝对会超时
#include <stdio.h>#include <stdlib.h>int queen[11], sum=0; int method[11]={0};int m; int check(int n){ int i; for(i = 0; i < n; i++){ //列和对角线的检查 if(queen[i] == queen[n] || abs(queen[i] - queen[n]) == (n - i)){ return 1; } } return 0;}void put(int n){ int i; for(i = 0; i < m; i++){ queen[n] = i; if(!check(n)){ if(n == m - 1){ sum++; } else{ put(n + 1); } } }}int main(){ while(scanf("%d",&m),m!=0){ sum=0; if(method[m]!=0) printf("%d\n",method[m]); else{ put(0); method[m]=sum; printf("%d\n", sum); } } return 0;}
- 数据结构之回溯法
- 回溯法-数据结构
- 数据结构学习之回溯法求解迷宫问题
- 数据结构学习之回溯法求解八皇后问题
- 数据结构之迷宫求通路《回溯法与栈》
- 回溯法 -数据结构与算法
- 回溯法 -数据结构与算法
- 回溯法 -数据结构与算法
- 回溯法之递归回溯和迭代回溯
- (回溯法) 数据结构_回溯法求解迷宫路径
- 数据结构:回溯法与树的遍历
- 【数据结构】用回溯法求解迷宫问题
- 【数据结构与算法】backtracking 回溯法
- 数据结构-迷宫问题(回溯法)
- 背包问题之回溯法
- C# 数组之回溯法
- 背包问题之回溯法
- 回溯法之排列组合问题
- eclipse新建android工程出现This template depends on Android Support Library问题
- java 反射
- WIN7+VS2008碰到LINK : fatal error LNK1000: Internal error during IncrBuildImage错误
- Android的Activity屏幕切换动画(二)-左右滑动深入与实战
- 餐桌上的“爱心菜”
- 数据结构之回溯法
- 书香与女人
- window对象的所有属性以及方法(不包括netsape)
- javascript中this的应用
- uva 494 Kindergarten Counting Game
- PHP中$_SERVER中的应用
- 第八章 流 10_总结
- stdcall 标准winNTdll 编写 与 调用
- 程序员编程艺术:第四章、现场编写类似strstr/strcpy/strpbrk的函数