[SDOI2017]天才黑客 (虚树+最短路) ~~(原谅我写不出简单题意)~~ 可以看到与$trie$树上的字母以及$lcp$并没有关系。。 以边作为点,可以写出一个非常简单的最短路$dis_i=min \lbrace dis_j+dep_{LCA(d_i,d_j)}+c_i|v_j=u_i\rb ...
分类:
其他好文 时间:
2019-12-25 13:13:05
阅读次数:
90
这个算法主要靠画图理解,于是学习的时候画了不少图,正好写篇博客。 扩展KMP能解决的问题: 给定两个串$S,T$,对于S的每一个后缀$S[i...n]$求和$T$的$LCP$。 设$exnxt_i$表示后缀$S[i...n]$求和$T$的$LCP$,我们要做的就是求所有$exnxt_i$。 我们先对 ...
分类:
其他好文 时间:
2019-12-20 18:58:27
阅读次数:
89
"题意" 显然如果有一个子串出现过$k$次,那么它必定是一个至少长为k的后缀序的$LCP$,求出所有相邻的长为$k 1$的$height$数组的最小值,在其中取最大值即可 code: ...
分类:
其他好文 时间:
2019-12-16 22:20:43
阅读次数:
96
首先,height[i]-k+1 很好理解把,他是说明目前这对后缀中不小于k的公共子串个数。 题解说用单调栈维护,为什么要用单调栈维护呢?因为时间复杂的可以大大降低。 怎么个降低方法呢? 在之前学习lcp(就是height数组)的时候,肯定接触过这样一个问题,就是从i开始的后缀字符串跟从j开始的后缀 ...
分类:
编程语言 时间:
2019-12-11 00:25:25
阅读次数:
78
题目链接: 题意:给一个模式串集合,序号1~n,有T个操作,或者是交换序号,或者是查询模式串集合中序号在L到R之 间的字符串有多少个和目标串公共前缀长度大于等于K。 ————————————————————————————————— 对模式串集合建字典树,则与目标串$LCP$大于等K的字符串,都在以 ...
分类:
其他好文 时间:
2019-12-06 21:12:48
阅读次数:
126
题目: 力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种: U: 向y轴正方向移动一格R: 向x轴正方向移动一格。不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles ...
分类:
编程语言 时间:
2019-12-04 01:33:08
阅读次数:
137
题意,给出两个字符串,给一个k,求出满足a的字串与b的子串完全一样的长度 =k的所有情况的数量。 翻译一下题意就是求所有后缀中,lcp =k的即可。 我们拼接两个字符串,中间用不出现的字符隔开即可。 然后就是如何求解的问题。 我们知道lcp(i,j)=min(height[i+1],....,hei ...
分类:
编程语言 时间:
2019-12-03 23:10:23
阅读次数:
66
迁移mysql数据库,运行项目的时候发现nginx和uWSGI都配置正确,可就是网站打不开,看了log文件,发现错误: django.db.utils.OperationalError: (1044, "Access denied for user 'lcp'@'%' to database 'wo ...
分类:
数据库 时间:
2019-11-24 19:27:46
阅读次数:
99
"题目" 调了差不多有10h吧,真的我太难了。 首先一个比较自然的想法是化边为点,每条边拆成一个入点和一个出点,入点到出点连一条长度为这条边的边权的边。同时对于两条边而言,从各自的出点到对方的入点连一条长度为两条边的字符串的$lcp$的边。 这样建出来的边数是$O(m^2)$的,非常的不优秀。 我们 ...
分类:
其他好文 时间:
2019-11-04 13:08:42
阅读次数:
71
感觉SA还是有点用处的所以还是用用的好。 定义 首先是一些定义,这是后缀数组的基础。 $sa_i$表示按照字典序从小到大排序后第$i$个串是$sa_i$这个后缀。 $rank_i$表示$i$这个后缀对应的是第几个(排名)。 $height_i$表示的是$lcp(sa_i,sa_{i 1})$的长度。 ...
分类:
编程语言 时间:
2019-10-05 22:02:54
阅读次数:
91