AcWing 算法基础课 数据结构
文章平均质量分 51
AcWing 算法基础课 数据结构
ZhgDgE
这个作者很懒,什么都没留下…
展开
-
【数据结构】哈希表
将字符串正、反映射到两个哈希表中(注意基数和模数要相同),询问区间子串是否回文?是否相等,相等即回文。小tips:如何多次。原创 2021-10-17 09:18:03 · 108 阅读 · 0 评论 -
【字典树+DFS】T9
HDU-1298 T9题意:模拟手机打字的猜想功能,根据概率,每按一个按键,输出可能性最高的串。先给定N个单词,以及频率,然后是Q次询问,每次询问给定一个按按键的顺序,以1为终止。思路:刚开始思路是BFS,但是代码可能不太好实现。优解:对每一个单词,进行dfs进行搜索,存储最大的概率和相应的前缀位置。未AC代码(MLE or RE):边界处理得不好,之后重写一遍。#include<iostream>#include<map>#include&原创 2021-06-30 13:05:47 · 169 阅读 · 0 评论 -
【字典树】【寻找字符串的最短标示前缀】POJ-2001
POJ2001-Shortest Prefixes题意:找出能唯一标示一个字符串的最短前缀,如果找不出,就输出该字符串思路:如果此字符串不是某其他字符串前缀,那么找到第一个sum[p]==1时,即为最短标示前缀的终点。如果是,则直接输出。代码:#include<iostream>#include<cstdio>using namespace std;const int N=1010*20;int idx,son[N][26],sum[N];c原创 2021-06-30 12:53:09 · 114 阅读 · 0 评论 -
【字典树入门】hdu 1305 Immediate Decodability
HDU 1305 Immediate Decodability题意:一组01字符串,问是否存在一个字符串是另一个字符串的前缀。两种方法一:在沿途经过节点打标记,最后依次在终点询问 cnt[p]>=2缺点:需要额外的空间储存输入的字符串,容易内存超限二:(更优方法)在叶子节点打标记,沿途询问 cnt[p] 以及在终点询问 son[p][0] || son[p][1] 。不用额外储存。思路:对01串建Trie,在建的过程中即可维护答案。在插入结点时,若某结点是原创 2021-06-30 12:43:54 · 53 阅读 · 0 评论 -
【KMP 各种类型总结】
KMP 各种类型总结以下是几种KMP类型题:A.类型1:匹配子字符串在母串中第几个位置开始出现。B.类型2:子串在母串中出现了几次(可以有重叠的)。eg:子串:AZA母串:AZAZAZAans = 3;C.类型3:母串中最多有几个子串(不可以有重叠的)。eg:母串:aaaaa子串:aaans=2, 最多2个D.类型4:求最小循环节有几个。eg: aabaabaabaab最小循环节:aab循环:4次E.类型5:当前最小循环节中字符串的个数(不可以补字符串原创 2021-06-26 20:17:15 · 2886 阅读 · 0 评论 -
【单调栈】一些经典例题
题目见此:单调栈详解待补题:区区区间间间Neat Tree原创 2021-06-26 20:27:54 · 91 阅读 · 0 评论 -
【带权并查集】模拟向量建模
理解某些问题具有这样的性质:问题中有若干个点,点之间存在某种关系,这种关系具有矢量的性质那么可以建立数据结构:带权并查集,用来解决这类问题一些文章带权并查集深入理解带权并查集(例题+思考)带权并查集的一些操作压缩路径在查询时,调用find函数将弱联通的向量集的终点都连接到某个相对节点插入向量对于有意义的插入的向量,两端点肯定是非联通的。调用join函数,将两块不连通向量集合并向量的平行四边形性质查询向量查询两个节点的向量关系,若同处于同一弱连通向原创 2021-06-26 21:14:17 · 153 阅读 · 0 评论 -
【算法基础课】数据结构 笔记
当数列涉及到频繁插入,删除时,可用链表降低时间复杂度 : O(n) - > O(1)单链表 AcWing 826. 单链表#include<iostream>#include<cstdio>using namespace std;const int N=1e5+10;int he,cnt;int ne[N],w[N];void init() { he=-1; cnt=1; }void add_to_he(int x){ w[cnt]=x; ne[c.原创 2021-06-25 20:27:37 · 62 阅读 · 0 评论