题目大意:给定长度为N的字符串,求出其中不相同子串的个数。
解题思路:每一个字串一定是某个后缀的前缀,那么原问题就可以等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]),suffix(sa[2])……suffix(sa[n])的顺序计算,我们会发现对于每个新加进来的后缀suffix(sa[k]),它将产生n-sa[k]+1个新的前缀。但是其中有leight[k...
分类:
编程语言 时间:
2015-01-22 20:18:15
阅读次数:
276
先定义SortList数组用于存放快递公司的简称和全称 public SortedList Ht = new SortedList() { {"zhongyouwuliu", "中邮物流"}, {"zhongtong", "中通速递"}, ...
分类:
Windows程序 时间:
2015-01-22 20:14:24
阅读次数:
1018
FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。字符数据易于使用,但是有些操作,比如随机文...
-----------------------------生产数组的全排列--------------------------------function permgen(a, n) n = n or #a --默认n为a的大小 if n <= 1 then --print...
分类:
其他好文 时间:
2015-01-22 20:03:26
阅读次数:
167
题目大意:给定两个字符串集合S和T,初始给定S集合中的所有字符串,不断向T集合中添加字符串,以及询问S集合中的某个字符串在T集合中的多少个字符串中出现过
神题- -
首先对S集合的所有字符串构建fail树
T集合中每加入一个字符串,我们就将这个字符串在AC自动机上跑一遍,并记录经过的所有节点
根据fail树的性质,这些节点到根路径上的所有节点的并集的出现次数都加了1
因此我们要求的就是树...
分类:
其他好文 时间:
2015-01-22 18:21:37
阅读次数:
345
题目大意:给出n个数字。首先将这n个数前后做差,得到另一个长度是n-1的序列。求出这个序列的最长重复子串,且这些子串不能重叠。
PS:这题论文上有解析。
解题思路:先二分答案,把题目变成判断性问题:判断是否存在两个长度为k的字串是否相同的,且不重叠。解决这个问题的关键还是利用height数组。把排序后的后缀数组分成若干组,其中每组的后缀之间的height值都不小于k。
容易看出,有希望成...
分类:
编程语言 时间:
2015-01-22 18:08:28
阅读次数:
238
int [] pins;int [,] items = new int [4,6];//初始化一个长6宽4的二维数组items[4,6] = 99;//给i=4,j=6的位置赋值99数组维数无限制,但是要小心内存不够用Time [] times;数组元素还可以是结构、枚举或者类。最好为数组变量取一个...
分类:
编程语言 时间:
2015-01-22 17:13:20
阅读次数:
215
方法一:$date是数组,数组中有字段id,name;$data1是数组,数组中有字段sort_id,name;所以要通过$date[$i]['id']==$data1[$j]['sort_id']来确定是否相同;相同的数据在添加一个status字段等于1;for($i=0;$i'新闻','id'=...
分类:
编程语言 时间:
2015-01-22 17:12:34
阅读次数:
170
在C#中,使用索引来访问数组元素。索引必须是一个整型值。在数组中,每一个维度的索引从0开始。一、访问一维数组元素int[] array = {1,2,3,4,5,6,7,8,9,10}; // 声明一维数组array[2] = 33; // 向数组的第3个元素写入值33int array1 = ar...
分类:
编程语言 时间:
2015-01-22 17:11:55
阅读次数:
314
在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组。一、ArrayList类的常用属性和方法1. ArrayList类的常用属性2. ArrayList类的常用方法二、ArrayList类与Array类的区别?ArrayL...
分类:
编程语言 时间:
2015-01-22 17:10:12
阅读次数:
168