可以发现一定只会填以某个字符为中心的最长回文串,然后用hash+二分/manacher求出以i为中心的最大的长度(即所有可能会填的回文串,共n个),将这些回文串根据左端点排序后贪心选择在当前位置之前最远的结束位置即可 1 #include<bits/stdc++.h> 2 using namespa ...
分类:
其他好文 时间:
2019-08-10 09:40:44
阅读次数:
91
吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] … h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形: 1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;2、左右对称, ...
分类:
其他好文 时间:
2019-08-04 15:31:35
阅读次数:
92
http://acm.hdu.edu.cn/showproblem.php?pid=3294 Girls' research Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total S ...
分类:
其他好文 时间:
2019-08-03 21:48:13
阅读次数:
114
解法一:中心拓展法。从下标为0开始遍历,将每个元素当作回文串中心,向两边拓展。 1)以这个字符为中心的回文串的长度(奇数串); 2)以这个字符和下个字符为中心的回文串的长度(偶数串)。 注意:既要统计回文串为奇数时,又要统计回文串为偶数时。当 s[left]!=s[right] 时,left多减了1 ...
分类:
其他好文 时间:
2019-07-28 13:49:01
阅读次数:
113
题目描述如下: 能立刻想到的就是爆破,先试试无脑爆破,时间复杂度O(n^3),然后毫无意外的超时了,爆破代码如下: public String longestPalindrome(String s) { int max = 0; int length = s.length(); // 字符串长度只有 ...
分类:
其他好文 时间:
2019-04-28 19:11:58
阅读次数:
149
最长双回文串 题目描述 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 题目描述 顺序和逆序读起来完全 ...
分类:
其他好文 时间:
2019-04-06 21:39:03
阅读次数:
158
Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S两组ca ...
分类:
其他好文 时间:
2019-03-17 20:05:37
阅读次数:
177
题目传送门 题意:求最长回文串长度,要求回文串左边是非下降。 思路一: 先把连续的回文串,满足先上升再下降的序列处理出来,再对这部分序列做马拉车模板就可以了。 需要注意的是,由于他要的是非下降的序列,所以要注意等于的情况。 还需要注意的是,写马拉车的板子习惯用的是char。。但是char的上限是25 ...
分类:
其他好文 时间:
2019-03-07 19:36:36
阅读次数:
166
首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串。比如:上海自来水来自海上,bob等等。 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc,其中efe,defed,cdefedc,gg,ggg,gggg,ggggg,gggggg,fgggg ...
分类:
Web程序 时间:
2019-02-27 01:10:58
阅读次数:
310
首先感谢 https://www.cnblogs.com/grandyang/p/4475985.html 这篇文章,给了我很大帮助,解释的很详细。 最近在学习lyd的算法竞赛书,学到求最长回文串的时候就看到了O(n)复杂度的Manacher算法,书上给的是hash+二分做法,复杂度为O(nlgn) ...
分类:
编程语言 时间:
2019-02-07 23:26:35
阅读次数:
217