数据结构学习记录
文章平均质量分 74
-Rosanna
这个作者很懒,什么都没留下…
展开
-
动态规划(线性)
【数字三角形】【问题】从三角形的顶至底的一条路径,使该路径经过的数字总和最大方法一:递归求解【分析】:用二维数组存放数字三角形,D( x, y) : 第x行第 y 个数字(x,y从1 开始算) , MaxSum(x,y ) : 从D(x,y)到底边的各条路径中,最佳路径的数字之和。 求 MaxSum(1,1) ,D(x, y)出发,下一步只能走D(x+1,y)或者D(x+1,yj+1...原创 2018-07-30 00:57:02 · 2056 阅读 · 0 评论 -
图的邻接表
#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define Maxn 100struct ARCnode //边节点{ int adjvex; //边的另一个邻接点的序号 ARCnode *next; //指向下一个边节点的指针};...原创 2018-08-06 21:31:01 · 3208 阅读 · 0 评论 -
AC自动机
【定义】ac自动机其实就是一种多模匹配算法,给你很多个单词,然后给你一段字符串,问你有多少个单词在这个字符串中出现过。【步骤+代码解析】const int kind = 26; struct node{ node *fail; //失败指针 node *next[kind]; //Tire每个节点的个子节点(最多个字母) int count; ...原创 2018-08-01 11:08:19 · 10223 阅读 · 2 评论 -
最短路径
方法:求解边上带有负值的单源最短路径问题,从源点逐次通过其他顶点,以缩短到达终点的最短路径长度。限制条件:不能包含权值总和为负值回路(负权值回路),不然会在一个回路中一直负循环下去 0-1的最短距离可以无限-2+1-2+1...趋近负无穷理解一:Bellman-Ford(贝尔曼-福特)构建图的邻接矩阵Edge[ i ][ j ]=w,表示从 i 到 j 权值为w,构造一个...原创 2018-08-09 21:39:42 · 3408 阅读 · 0 评论 -
KMP
大神传送门:https://blog.csdn.net/v_july_v/article/details/7041827#t6【解决问题类型】有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢?步骤一:创建next数组①寻找前缀后缀最长公共元素长度子串对于自身各个前缀后缀的公共元素最大长度表【结论】失配时,模式串向右移动的位数为:已匹配字符数 - 失配...原创 2018-07-31 15:45:28 · 4228 阅读 · 1 评论 -
最短路径【迪杰斯特拉dijkstra】
【最短问题】最短路径问题:如果从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径,使得沿此路径各边上的权值总和达到最小。(权值非负) 【Dijkstra思想】按路径长度的递增次序,逐步产生最短路径的算法。首先求出长度最短的一条最短路径(顶点0到其他顶点的直接路径最短的路径),再参照它求出长度次短的一条最短路...原创 2018-08-04 16:47:21 · 256 阅读 · 0 评论 -
动态规划之背包问题
背包问题泛指以下这一种问题:给定一组有固定价值和固定重量的物品,以及一个已知最大承重量的背包,求在不超过背包最大承重量的前提下,能放进背包里面的物品的最大总价值。【01背包】【问题】0-1背包问题是指每一种物品都只有一件,可以选择放或者不放。现在假设有n件物品,每件物品价值为V,背包承重为m。【分析】对于这种问题,可以采用一个二维数组解决,f[i][j],表示此时背包的承重...原创 2018-07-27 12:32:41 · 258 阅读 · 0 评论 -
并査集 & 克鲁斯卡尔&普里姆
最小生成树:构造连通网的最小代价生成树。(包含所有顶点,以及n-1条边。)也就是说,一个连通图的生成树是一个极小连通子图,包含图中所有顶点,以及足以构成一棵树的n-1条边。经典的有两种算法:Prim普鲁姆和克鲁斯卡尔Kruskal。 比如上面左边是一个有向图G,右边是它的极小连通子图。【并查集】*使用*用于处理一些不相交的的合并问题。一些常见的用途有求连通子图、求...原创 2018-07-30 14:37:40 · 295 阅读 · 0 评论 -
Trie树 字典树 前缀树
【定义】Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。【目的】 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。【基本性质】根节点...原创 2018-07-26 17:58:01 · 134 阅读 · 0 评论 -
STL
STL是Standard Template Library的简称。STL是一些“容器”的集合,STL也是算法和其他一些组件的集合。关联式容器【映射map】 #include<map>功能一、自动建立key-value的对应,他们分别可以是你任意需要的类型。二、根据key的值快速查找、快速插入key-value、快速删除记录、根据key修改value、遍历所有。...原创 2018-08-07 19:48:51 · 111 阅读 · 0 评论