python语句的八皇后代码,摘自《Python基础教程》,代码相对于其他语言,来得短小且一次性可以打印出92种结果。同时可以扩展为九皇后,十皇后问题。 问题:在一个8*8棋盘上,每一行放置一个皇后旗子,且它们不冲突。冲突定义:同一列不能有两个皇后,每一个对角线也不能有两个皇后。当然,三个皇后...
分类:
其他好文 时间:
2014-09-15 14:07:18
阅读次数:
215
定义:设有主串S和子串t,子串的定位就是要在主串S中找到一个与子串t相等的子串。通常把主串S称作目标串,子串t称作模式串,因此定位也称作模式匹配。
常用两种算法:
1brute-force算法
思路:主串标记指针每次移动一个位置,然后和子串比较,如何相等则返回当前主串指针的位置。
模式匹配过程如图:
图略
上面算法的缺点:主串指针回溯,当与模式串部分匹配后,每次主...
分类:
其他好文 时间:
2014-09-11 12:33:21
阅读次数:
120
在棋盘上放置棋子使它们任意两个都不在同一行或同一列dfs(x,k)表示的是访问到第x行已放置了k个棋子这道题我们以每行或者每列为单位来看题,每次搜索都对一整行进行访问,并在安置棋子的点的列位置上使其visit[col]=1如果放置成功那么dfs(x+1,k+1),再进行回溯不论是否成功,都要dfs(...
分类:
其他好文 时间:
2014-09-09 15:31:09
阅读次数:
234
思路: 逐步查找。当出现不同时,如何回溯是关键。
Solution B 与经典 KMP 算法:
next[0] = 0; (0 位置不能匹配,下次还从此位置开始匹配)
next[pos] = (P[next[pos-1]] == P[pos] ? next[pos-1]+1 : 0);
分类:
其他好文 时间:
2014-09-09 15:04:38
阅读次数:
160
深度优先搜索算法(depth first search),是一个典型的图论算法。所遵循的搜索策略是尽可能“深”地去搜索一个图。算法思想是: 对于新发现的顶点v,如果它有以点v为起点的未探测的边,则沿此边继续探测下去。当顶点v的所有边都已被探寻结束,则回溯到到达点v的先辈节点。以相同方法一直回溯到源....
分类:
其他好文 时间:
2014-09-07 15:55:45
阅读次数:
208
题目大意:N*M的棋盘上摆了一些棋子,在剩余位置上尽可能多的摆上炮,使所有炮不能互吃dfs+回溯 1 #include 2 #include 3 #include 4 #define max(x,y) x>y?x:y; 5 using namespace std; 6 int a[30],b[...
分类:
其他好文 时间:
2014-09-06 20:01:13
阅读次数:
184
leetcode Candy 很好精巧回溯算法思想,锻炼思维。...
分类:
其他好文 时间:
2014-09-05 10:07:11
阅读次数:
182
首先需要了解一下BF暴力匹配算法,这个算法为每一个串设置一个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针回到开始后移之前的位置的下一位,模式串指针回到最开始。
对比一下KMP算法,同样是设置两个指针,然后两个指针同时后移,出现不匹配的情况后,主串指针不变,模式串指针回溯一定的距离。具体模式串指针回溯多少,是第一次看KMP算法的人比较难以理解的,其实仔细想想,模式串的前缀和后缀其实也是...
分类:
其他好文 时间:
2014-09-03 11:21:16
阅读次数:
136
题意:给定一棵树,每个节点是一堆石子,给定两种操作:
1.改变x号节点的石子数量
2.用从x到y的路径上的所有堆石子玩一次Nim游戏,询问是否有必胜策略
Nim游戏有必胜策略的充要条件是所有堆的石子数异或起来不为零
这题首先一看就是树链剖分 然后题目很善良地告诉我们深搜会爆栈 于是我们可以选择广搜版的树链剖分
BFS序从左到右是深搜,从右到左是回溯,一遍BFS就够
单点修改区间查询还可...
分类:
其他好文 时间:
2014-09-02 10:34:04
阅读次数:
334