使用深度优先搜索解决,很简单的题。
建立26个字母的邻接矩阵图和访问数组,从字母b开始搜索,若能到达字母m则可以变形。
#include
using namespace std;
int v[27];
int m[27][27];
bool dfs(int x)
{
if(x=='m'-'a') //搜到字母m结束
return true;
for(int i=0...
分类:
其他好文 时间:
2015-03-14 20:06:59
阅读次数:
190
http://poj.org/problem?id=3126搜索的时候注意1:首位不能有02:可以暂时有没有出现在目标数中的数字#include #include #include using namespace std;const int maxn=1e4+5;const int inf=0x7f...
分类:
其他好文 时间:
2015-03-14 19:49:14
阅读次数:
116
0-1部分和问题描述:有n个大小不同的数字a,判断是否能从中取出若干个数,使得这些数的和为k。解决思路:利用DFS(深度优先搜索)来解决,用dfs(i,j)表示前i个数字能否得到部分和j,则根据前i+1个数的能否得到部分和j或j+a[i+1]来判断dfs(i,j)的状态,算法如下:1 bool df...
分类:
其他好文 时间:
2015-03-14 01:03:03
阅读次数:
257
图算法的源代码、包含大量的注释,和最小生成树、最短路径、邻接表图深度广度优先搜索,邻接矩阵图深度广度优先搜索,欢迎借鉴
#include
#include
#define MAXVEX 20
#define INFINITY 65535
typedef char vertexType;
typedef int edgeType;
typedef int Boolean;
typedef int ...
分类:
编程语言 时间:
2015-03-12 22:38:07
阅读次数:
309
图:深度优先搜索: public class DFS{ private boolean[] marked; pirvate int count; public DepthFirstSearch(Graph G, int s ){ marked = new boolean[G....
分类:
编程语言 时间:
2015-03-11 14:33:25
阅读次数:
135
一:简介
(1)回溯法 又称试探法
回溯法的基本做法是深度优先搜索,是一种组织得井井有条的、能避免不必要重复搜索的穷举式搜索算法;基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
适用场景:当遇到某一类问题时,它的问题可以分解,但是又不能得出明确的动态规划或是递归解法,此时可以考虑用回溯法解决此类问题。回溯法的优点在于其程序结构明确,可读性强,易于理解,而且通过对问题的分...
分类:
编程语言 时间:
2015-03-08 15:42:56
阅读次数:
761
图的最短路径问题主要分为两类,单源最短路径问题和全对最短路径问题。单源最短路径问题指给点单个源点,求其到所有其它顶点之间的最短距离。而全对最短路径问题指所有顶点之间的最短路劲问题。此外对于单对最短路径问题,从渐进意义上来看,目前还没有比最好的单元算法更快的算法来解决这一问题。
一:单源最短路径问题
单源最短路劲问题根据其权重分为四类,当图G=(V,E)为无权图,直接使用广度优先遍历(这里不做介...
分类:
编程语言 时间:
2015-03-07 21:19:54
阅读次数:
309
深度优先搜索使用的策略是,只要与可能就在图中尽量“深入”。DFS总是对最近才发现的结点v出发边进行探索,知道该结点的所有出发边都被发现为止。一旦v的所有出发边都被发现了,搜索就回溯到v的前驱结点(v是经该结点才被发现的),来搜索该前驱结点的出发边。该过程持续知道从源结点可以到达的所有结点都被发现.....
分类:
编程语言 时间:
2015-03-07 18:21:51
阅读次数:
120
广度优先搜索以源结点s为出发点,算法始终将已发现和未发现结点之间的边界,沿其广度方向向外扩展。也即算法需要在发现所有距离源结点s为k的所有结点之后才会去发现距离源结点距离为k+1的其他结点。 talk is cheap,show me the code!上具体的代码,最容易解释这一切。 该例...
分类:
编程语言 时间:
2015-03-07 15:35:31
阅读次数:
158
一:简介
(1)相信做过ACM的人,都很熟悉图和树的深度优先搜索;算法里面有蛮力法 —— 就是暴力搜索(不加任何剪枝的搜索);
(2)蛮力搜搜需要优化时,就是需要不停的剪枝,提前减少不必要的搜索路径,提前发现判断的过滤条件;
(3)剪枝的核心问题就是设计剪枝判断方法,哪些搜索路径应当舍弃,哪些搜索路径不能舍弃(保留);
(4)高效的剪枝过滤条件需要从局部和全局来考虑问题,发现内在的规律。
...
分类:
其他好文 时间:
2015-03-06 09:39:30
阅读次数:
170