自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (1)
  • 收藏
  • 关注

转载 词性标记

词的分类:实词:名词、动词、形容词、状态词、区别词、数词、量词、代词虚词:副词、介词、连词、助词、拟声词、叹词。ICTPOS3.0词性标记集实词n 名词 nr 人名 nr1 汉语姓氏 nr2 汉语名字 nrj 日语人名 nrf 音译人名 ns 地名  nsf 音译地名 nt 机构团体名 nz

2017-09-15 21:40:12 1835

原创 hdu3374 String Problem (字符串最小表示)

题目:输出一个字符串的最小表示时起始位置和最大表示时起始位置。并输出有多少个最小表示和最大表示。分析: 循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S’中字典序最小的一个。 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca。而且最小表示的

2017-09-10 01:03:07 153

原创 hdu3336 Count the string(next数组)

题目:统计字符串s的所有前缀在s中的出现次数。分析:如果从正面考虑,枚举每个前缀然后找一遍,是O(n^2)的算法,不能接受。 这道题要倒着考虑,利用next数组的性质。任何一个next值都意味着两个相同的前缀和后缀,换句话说,所有的前缀都会在next数组中有所体现。next[i]表示一个以i结尾的既是前缀也是后缀的片段,next[next[i]]也是一个以i结尾的这样的片段,只不过长度更短,以此类

2017-09-08 22:18:20 175

原创 poj2752 Seek the Name, Seek the Fame(next数组的理解)

题目:在一个字符串中,输出那些既是后缀又是前缀的字符串的长度。分析:这个题就看next数组理解的深不深刻。 next其实是给字符串划分了对称性,大对称中套着小对称,小对称套着更小的对称。 两段长度为k的值是完全相同的,而两段k中各分为两段后,四段小蓝色部分也是相同的。这是个重要的性质。 nxt[j]就是长度为k的那一截,nxt[k-1]就是其中一截蓝色的。“递归”下去即可。代码:#incl

2017-09-08 02:06:59 226

原创 hdu2087 剪花布条(kmp基础变形)

题目:一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?分析:唯一需要注意的是,比如aaaa中找aa,答案是2而并非3。也就是说,找到的子串是不能重叠的。 只需要修改kmp找子串的函数即可,当找到一个后,下次子串直接从0开始,而不是next[j-1]代码:#include <iostream>#inclu

2017-09-07 11:16:49 203

原创 poj2406 Power Strings(kmp求最小循环节)

题目:求出一个字符串的最小循环节的循环次数。分析:一个字符串的最小循环节就是len - next[len],这个字符串可以是最后一个循环节不完整的。 证明也很简单,把字符串看作是几个最小循环节连起来,最后再连一个循环节的一部分,称这部分叫“小尾巴”。然后next[len]肯定是尽可能长的匹配的,前缀是尽可能多的循环节加一个从循环节中抽出的小尾巴,后缀是尽可能多的循环节加小尾巴。画个图就很明显nex

2017-09-07 00:26:20 316

原创 uva12338 Anti-Rhyme Pairs (字符串hash+二分)

题目:给N个字符串,Q组询问,每次询问(i,j),输出第 i 个串和第 j 个串的最长公共前缀长度。 N <= 1e5 ,L <= 1e4, N * L <= 1e6分析:这道题二分加字符串哈希很容易想到,没什么可说的。 两个注意的点:字符串的N和L给的很不舒服,没法直接开二位数组,可以考虑用string和vector。或者,把所有字符串存到一个1e6的一维数组中,只不过需要记录每个字符串的起

2017-09-04 22:07:29 183

原创 hdu4821 String (字符串hash + map)

题目:一个字符串S,找出 S 有几个子串满足如下要求:子串长度是M*L子串由M个长度为L的小子串相连而成。分析:最朴素的想法肯定是枚举1~n-L+1依次作为子串的开始,然后算出它之后的M个长度为L的串的值是否相同。这样的时间复杂度是O(n * M),不太能接受,尝试优化。 为了方便描述我们让M = L = 3 假设我们已经得到了以1开头的3个长L的串,###@@@^^^,现在想算下一个,只

2017-09-04 01:39:55 316

原创 hdu4080 Stammering Aliens(二分+字符串hash)

题目:在一个字符串中,找出出现次数不小于m次的最长的子串。 输出最长的子串长度和最右边一个子串的起始位置。分析:字符串hash可做。 二分子串的长度,然后处理出来所有这个长度的子串的值,排序后找有没有相同的大于等于m个即可。代码:#include <iostream>#include <algorithm>#include <queue>#include <stack>#include

2017-09-03 16:17:34 300

原创 hdu4300 Clairewd’s message (字符串hash)

题目:史上最难读懂的题目。 给一个字符串,由密文+明文两部分组成,明文就是密文的翻译。密文是完整的,但是明文不一定完整,也可能没有明文。给出明文到密文的字母对应。输出密文+完整的明文。若有多种情况使得总长最短。分析:原字符串 s 是 密+明,将它按照翻译方式全翻译完后得到 乱+密,我们将得到的字符串称为 t 。我们只需要 t 的后缀和 s 的前缀的最大匹配即可得到完整的密文部分,再由那个翻译表,就

2017-09-03 00:12:42 206

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除