题目大意:给定一个n个单词的文章,求每个单词在文章中的出现次数
文章长度
首先将所有单词用空格连接成一个字符串,记录每个单词的起始位置和长度
然后求后缀数组,对于每个单词后缀数组中一定有连续一段后缀以这个单词开头,我们通过一开始记录的起始位置找到这个单词的后缀,然后左右端点二分答案,满足左右端点之间的后缀与原单词的LCP都当与等于原单词长度即可
时间复杂度O(nlogn)
#includ...
分类:
编程语言 时间:
2014-11-12 15:05:52
阅读次数:
823
描述每台电话都有一个独一无二的号码,用一个十位的十进制数字串表示。电话a和b之间能直接通信,当且仅当“a与b之间仅有一个数字不同”,或者“交换a的某 两位上的数字后,a与b相同”。而a、b之间建立通信联系所需要的时间为cost[lcp(a,b)],其中cost[]是一个常数数 组,lcp(a,b)表...
分类:
其他好文 时间:
2014-10-28 15:10:17
阅读次数:
134
Tomcat 6.0\conf\tomcat-users.xml目录下添加用户 (服务器启动后自动增加的服务器启动后) user username="ll" password="lcp" roles="lluser">完成登录验证还需要配置web-inf/web.xml文...
分类:
其他好文 时间:
2014-10-26 11:27:36
阅读次数:
450
把原串复制一份反过来接在原串后面,中间用没出现过的字符隔开,然后跑后缀数组,在原创枚举每一个位为回文中心(分奇偶讨论),则回文串长度相当于原串与反串对应位置的lcp,所以先用ST预处理,然后查询。复杂度O(nlogn)#include#include#include#include#include....
分类:
编程语言 时间:
2014-10-22 20:11:18
阅读次数:
270
PPPoE协议原理:第一阶段:1.pppoeclient广播发送PADI数据包建立连接,2.pppoeserver回复一个单单播帧3.client回复一个单播请求4.pppoeserver就会回复一个允许包(包中携带sessionid)第二阶断:然后双方使用PPP的LCP协议协商链路,NCP进行密码检验,即可通讯。重点:第一阶段p..
分类:
其他好文 时间:
2014-10-07 21:37:54
阅读次数:
194
思路:枚举第一个字符串的位置,然后枚举最长公共前缀的长度,时间即会下降……
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(...
分类:
其他好文 时间:
2014-09-30 19:14:09
阅读次数:
184
最长公共子串问题的后缀数组解法。将第二个字符串拼接到第一个字符串中去,中间用分割符隔开,避免后面计算的时候发生一个字串横跨两个字符串的情况。之后看相邻的不在同一个字符串中的lcp的最大值即可。#include #include #include #include #include #include ...
分类:
其他好文 时间:
2014-09-27 02:00:58
阅读次数:
293
这题曾经用KMP做过,用KMP 做非常的简单,h函数自带的找循环节功能。用后缀数组的话,首先枚举循环节长度k,然后比较LCP(suffix(k + 1), suffix(0)) 是否等于len - k, 如果相等显然k就是一个循环节。得到LCP的话可以通过预处理出所有点和0的lcp就好了。另外倍增法...
分类:
其他好文 时间:
2014-09-27 00:08:58
阅读次数:
307
后缀数组+RMQ+二分
后缀数组二分确定第K不同子串的位置 , 二分LCP确定可选的区间范围 , RMQ求范围内最小的sa
Boring String Problem
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 661...
分类:
其他好文 时间:
2014-09-17 16:53:22
阅读次数:
256
题目链接:poj 3693 Maximum repetition substring
题目大意:求一个字符串中循环子串次数最多的子串。
解题思路:对字符串构建后缀数组,然后枚举循环长度,分区间确定。对于一个长度l,每次求出i和i+l的LCP,那么以i为起点,循环子串长度为l的子串的循环次数为LCP/l+1,然后再考虑一下从i-l+1~i之间有没有存在增长的可能性。
#include ...
分类:
其他好文 时间:
2014-09-05 23:53:12
阅读次数:
412