摘要: 思路:马拉车裸题,我们用一个p[i]数组代表以i为中心的最大回文半径。这里用了一个小技巧,如果一个串是aaaa这样的,那我们插入不相干的字符使它成为#a#a#a#a#,这样无论这个串是奇数还是偶数都会变成奇数,容易处理。马拉车的效率在于,在暴力处理前面的回文时,我们可以初始化后面的p[j],减少暴力 阅读全文
posted @ 2018-07-18 19:59 KirinSB 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一串字符串,问你前后缀相同情况有几种,并输出后缀位置(?这里一直没看懂length是什么,但是这样理解答案也对,然后还要加上本身长度) 思路:这里好好讲讲next的用法。我们都知道next代表前后缀匹配值,现在我们以下面这个字符串为例,讲述next的用法: len = 9,next[len 阅读全文
posted @ 2018-07-18 17:47 KirinSB 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个字符串,这个字符串可以这样操作:把第一个字符放到最后一个形成一个新的字符串,记原式Rank为1,每操作一步Rank+1,问你这样操作得出的最小字典序的字符串的Rank和这样的字符串有几个,最大字典序的字符串的Rank和这样的字符串有几个。 思路:手动模拟操作复杂度O(n^2)果断超时, 阅读全文
posted @ 2018-07-18 15:36 KirinSB 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 题意:先给你一个密码本,再给你一串字符串,字符串前面是密文,后面是明文(明文可能不完成整),也就是说这个字符串由一个完整的密文和可能不完整的该密文的明文组成,要你找出最短的密文+明文。 思路:我们把字符串当做全是密文然后解密成明文,这样前面密文部分就是完整的明文,后面明文部分就乱码了,要求最短密文+ 阅读全文
posted @ 2018-07-18 10:57 KirinSB 阅读(130) 评论(0) 推荐(0) 编辑