这是一道涉及计算步数的问题;
这对于这样的问题,我通常的做法是在DFS函数当中加入一个变量,step;
这样,在进行深搜函数递归的时候,我们就便于调控和记录( 最小的 )步数了;
题目:
这有一个迷宫,有0~8行和0~8列:
1,1,1,1,1,1,1,1,1
1,0,0,1,0,0,1,0,1
1,0,0,1,1,0...
分类:
其他好文 时间:
2015-08-14 15:44:32
阅读次数:
92
开始搞算法才发现,自己的智商根本不够用啊!各种不理解啊,只能记个模板,稍微变形就跪了。怎么破?怎么破!!!!各种数学知识,各种抽象啊,醉的不要不要的什么dfs,我怎么就是搞不懂它呢回溯?怎么就是想不出来?唉!!!仰天长叹啊!天生我才有啥用?可否有大牛前来为我指点迷津!!!!我成天坐的腰酸背痛啊!!我...
分类:
其他好文 时间:
2015-08-13 22:08:59
阅读次数:
121
回溯法,简单理解就是有源可溯。基本思想要借鉴穷举法,但是它不是一味地穷举,当发现某一步不符合条件时,这一步后面的穷举操作就不进行了(俗称“剪枝”),我自己把它叫做动态穷举法。假设第一个步骤可行,那么执行第二个步骤,第三个......如果其中第三个步骤不行,那么我们再回过来(回溯),第二个步骤换一种方...
分类:
其他好文 时间:
2015-08-13 20:08:20
阅读次数:
10939
软件需求说明书
1引言
1.1编写目的
软件需求说明书是需求分析阶段的一个文档,是对软件目标及范围的求精和细化,深入描述软件的功能和性能以及软件的约束范围,使用户和软件开发者对该软件的初始规定有个大概了解,有利于对项目的回溯和指导后续的开发和维护。
文档读者:开发人员与用户代表
1.2背景
A.待开发软件名称:机房收费系统
B.项目提出者:米新江教授
开发者:...
分类:
其他好文 时间:
2015-08-13 15:46:57
阅读次数:
141
DES:给一个n行m列的棋盘。马以L型走。问能否从某一位置开始走完棋盘上的每个位置。若能继续输出字典序最小的一条路径。很典型的dfs。搜的时候就按照字典序从小到大的顺序。搜到第一条路径时停止搜索输出路经就好了。感觉dfs很机智。WA了几次都是因为保存答案那里没有回溯。。。。。。。。。。一开始还以为没...
分类:
其他好文 时间:
2015-08-13 11:23:02
阅读次数:
131
数据并不大,dfs回溯即可。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 30; 7 char str[N]; 8 int digit[N]; 9 10 int dfs( int sum ...
分类:
其他好文 时间:
2015-08-12 21:21:37
阅读次数:
131
#include #include #include #include using namespace std;#define N 20int n, sum, x[N+1];void Init(){ cout > n; sum = 0; memset(x, 0, sizeof(x));}...
分类:
其他好文 时间:
2015-08-12 21:20:58
阅读次数:
142
深搜(dfs)就是一條路搜到底再回溯的過程,不像廣搜那樣一層一層地搜,一般用於找一條符合的路徑就ok了,而不用找到最短的路;今天做了一題很典型的深搜的題目,雖然之前做過挺多的,但是都沒有怎麼總結,寫起來不夠快...其實總結起來還是有一個大概的框架的:poj 2488.A Knight's Journ...
分类:
其他好文 时间:
2015-08-12 16:30:35
阅读次数:
93
紫书上给的是状态空间搜索,其实本题也可以用IDA*算法,因为其符合IDA*的特点 : 求最小迭代次数 。
根据旋转的规律,我们可以用几个数组来储存向各个方向旋转时改变哪些量,用来维护旋转这个操作 。另外就是估价函数:当前出现在中间八个格子中次数最多的数字设为t ,那么剩下的迭代次数就是8 - t , 如果它加上已经迭代的次数d > maxd ,则应当剪枝 。
另外想到了一个估算回溯法的时间复...
分类:
编程语言 时间:
2015-08-11 21:28:50
阅读次数:
208
JS的generator可以玩魔法!! 不过,程序的世界,并没有无根之木、无源之水。让我们回溯本源,探一探各种高阶流程控制结构(比如continuation, coroutine)的来龙去脉...
分类:
其他好文 时间:
2015-08-11 16:21:07
阅读次数:
262