随笔分类 - 字符串
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4512题意: 给你一个序列,找出回文串,可以不连续的,但必须满足从前面到中间是递增的,中间到结尾时递减的。如果没有中间的话,也就是回文串是偶数,则中间两个必须相等。坑爹: 本想直接将序列反过来然后和原串做LCIS找到一个最长的序列,但是有个恶心的数据一下子没想到,结果WA了好久, 31 2 1 3 这组数据,如果反过来的话他们的LCIS值会是3,但根据题意是不对的。解法: 原本的模板是两个for,都是1~N循环,但这样就会出现上述问题,所以在里层循环范围改成 j 2 using namespace st...
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4513题意: 找出给定的序列中最长的回文串,但有一个要求,必须是从左边到中间中的每一个数字,左边的都要小于等于右边的,而中间到右边的则相反。坑爹: 如果暴力的话要O(n^2) 而n最大能到100000,所以暴力是不行的。解法: Manacher的算法的模板,大约复杂度为O(n)。 1 #include 2 using namespace std; 3 4 const int maxn = 110000 + 10; 5 const int INF = 0x3fffffff; 6 7 int str[m...
阅读全文
浙公网安备 33010602011771号