摘要: 1、树和图的存储 有两种存储方式,树是一种特殊的图,无环连通图。所以只讨论图的存储方式。 图分为有向图和无向图。无向图a—b可以看作有向图a$\to$b和b$\to$a,所以无向图也可以看作一种特殊的有向图。 这样只需要考虑有向图就可以了。 1.1 邻接矩阵存储 其实就是开了一个二维数组。g[a,b 阅读全文
posted @ 2021-04-04 13:11 晓尘 阅读(239) 评论(0) 推荐(0)
摘要: 1、深度优先搜索DFS 不管哪条路一定要走到头,然后再往回走,往回退一步之后看看还有没有没走过的路,如果有,那么就继续对没走过的路进行DFS,如果没有就再退一步。 算法思路奇怪或者对空间要求较高用DFS。 DFS俗称暴力搜索,最重要的就是把他的顺序想明白。用一个什么样的顺序去遍历所有方案。BFS搜索 阅读全文
posted @ 2021-04-04 13:03 晓尘 阅读(189) 评论(0) 推荐(0)
摘要: 有N个物品和一个容量是v的背包,每个物品有两个属性:体积$v_i$和价值$w_i$。 我们要在背包装得下的情况下让选出的物品总价值最大。 进阶可以看看背包九讲。 动态规划是没有模板的,他的代码就是一些循环,他的核心在于状态的表示和状态的转移,比较偏向于数学的思考。 1、(0,1)背包问题 每件物品只 阅读全文
posted @ 2021-04-02 12:46 晓尘 阅读(246) 评论(0) 推荐(0)
摘要: 1、vector 变长数组,倍增的思想 系统为某一程序分配空间时,所需时间与空间大小无关,与请求次数有关。 #include<iostream> #include<vector> using namespace std; int main() { vector<int> a; // 定义一个vect 阅读全文
posted @ 2021-03-26 10:39 晓尘 阅读(69) 评论(0) 推荐(0)
摘要: 1、概述 主要为以下两部分: 哈希表的存储结构 字符串的哈希方式 1.1 Hash表的作用 把一堆复杂的结构映射到0~N一个小一点的范围内 如把0 ~ $10^9$但是其中有很多没意义的数字,把其中有意义的数字映射到一个小范围内,如0 ~ \(10^5\)。 如下面模拟散列表的例子。 1.2 如何写 阅读全文
posted @ 2021-03-26 10:28 晓尘 阅读(208) 评论(0) 推荐(0)
摘要: 3.1 概述 手写堆而不是STL的堆 STL里的堆就是优先队列priority_queue 如何手写一个堆? STL支持的操作: 插入一个值 求集合中的最小值 删除最小值 STL没办法直接实现,只能间接实现的功能: 删除任意一个元素 修改任意一个元素 3.1.1 什么是堆 堆就是一个二叉树或者说是完 阅读全文
posted @ 2021-03-26 10:18 晓尘 阅读(97) 评论(0) 推荐(0)
摘要: 1、概述 1.1 作用 将两个集合合并 询问两个元素是否在一个集合当中 1.2 暴力做法 用一个数组belong[x] = a存储哪个元素属于哪个集合,判断就是if(belong[x] == belong[y]),复杂度O(1) 但是当我们想合并两个集合时,假如集合a有1000个元素,集合b有200 阅读全文
posted @ 2021-03-26 10:14 晓尘 阅读(55) 评论(0) 推荐(0)
摘要: 作用:高效地存储和查找字符串集合的数据结构 用到Trie树的题字母类型不会很多,一定都会有限制 如想在Trie中存储如下元素: abcdef,abdef,aced,bcd,bcff,cdaa,bcdc,abc 存储方式如下: 在根节点root后,从头向后遍历,在每个单词的结尾位置做标记,如下图: 那 阅读全文
posted @ 2021-03-26 10:10 晓尘 阅读(61) 评论(0) 推荐(0)
摘要: 就是两个串,s[N]是长串,p[M]是短串 习惯上下标从1开始 暴力做法: 就相当于每次都只挪动一个位置去匹配下一位。红色和绿色圆圈说明这个位置不匹配,将红色短线向右移动一个位置重新匹配。 KMP优化: 从上面可以看出一些规律,在前面匹配失败的情况下,我们最多可以往后移动多少位让他继续匹配。 我们要 阅读全文
posted @ 2021-03-25 23:22 晓尘 阅读(195) 评论(0) 推荐(0)
摘要: 2、栈与队列 2.1 栈 先进后出 用tt表示栈顶指针,tt--弹出,tt > 0说明非空 stk[++tt]插入,stk[tt]就是栈顶元素 2.1.1 练手题目 2.1.2 练手答案 #include <iostream> using namespace std; const int N = 1 阅读全文
posted @ 2021-03-25 22:59 晓尘 阅读(54) 评论(0) 推荐(0)