我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of binary search is comparatively straightforward, t ...
分类:
编程语言 时间:
2019-06-25 13:36:34
阅读次数:
118
今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用。 !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点。 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程。、 首先,我先假设你已经有了二叉树的相关知识,主要就是概念和遍历方式这些点。如果没有这些知识储备, ...
分类:
编程语言 时间:
2019-06-24 22:43:25
阅读次数:
143
题目链接: https://codeforces.com/contest/432/problem/D 题解L 做法一: KMP 显然next树上$n$的所有祖先都是答案,出现次数为next树子树大小。 做法二: 后缀数组 按照height分组,二分查找即可。 代码 KMP: ...
分类:
编程语言 时间:
2019-06-18 09:15:27
阅读次数:
115
T1:Censoring 和以前kmp一样的一道题,只是改成了多个串需要AC自动机 用一个栈维护当前字符串,匹配上了就暴力弹栈,并将指针回溯,复杂度O(n+m) 这题考试的时候不知道怎么把栈给否掉了,用了个玄学方法记录,只干出来13分 T2:记忆的轮廓 概率期望,考试时候直接弃了(主要是无良老师数据 ...
分类:
其他好文 时间:
2019-06-17 11:10:57
阅读次数:
109
字符串算法并不多,KMP,trie,AC自动机就是其中几个最经典的。字符串的题目灵活多变也有许多套路,需要多做题才能体会。这里收集了许多前辈的题目做个集合,方便自己回忆。 KMP题目:https://blog.csdn.net/qq_38891827/article/details/80501506 ...
分类:
其他好文 时间:
2019-06-16 11:57:43
阅读次数:
105
The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote fr ...
分类:
其他好文 时间:
2019-06-08 18:49:58
阅读次数:
80
1. 快排的partition 3. kmp的next数组 next[0] = 1; for(int i=1; i ...
分类:
编程语言 时间:
2019-06-08 14:42:00
阅读次数:
128
1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstring> 5 6 using namespace std; 7 const int N=1e6+5; 8 char s[N],t[1000 ...
分类:
其他好文 时间:
2019-06-07 21:07:30
阅读次数:
113
KMP基本思路很简单,关键在于求失配数组,也就是next数组 next[k]表示[0, k]的最长 真 前缀后缀的索引(不包括p[0, k]) 假设我们现在有了p[0,i 1]的最长 真 前缀后缀索引为k,如何求p[0, i]的最长 真 前缀后缀呢? + p[i] == p[k+1], 那么很显然n ...
分类:
编程语言 时间:
2019-06-06 19:13:35
阅读次数:
160
就是使用KMP算法进行字符串的匹配,但是我发现我之前的kmp写的有问题,然后修补了一下板子漏洞2333 next数组含义: next[i]表示 到i为止,前缀 和 后缀 相同的个数 1 (为啥 1呢,比如 , ,这样的话,aabaab不是的话 就直接失配到aab,大概意思就是这样) c++ clas ...
分类:
其他好文 时间:
2019-06-03 12:39:51
阅读次数:
84