hihoCoder第一周---最长回文子串(1032)
其实这就是mancher算法的板子题,贴个代码好了。
思想请见我的另一篇博客:
https://blog.csdn.net/qq_41090676/article/details/86768361
#include <cstdio>
#include <cstring>
const int maxn = 3e6;
int len1,len2,p[maxn],ans;
char s[maxn], str[maxn];
int min(int x,int y)
{
    return x < y ? x : y;
}
void init()
{
    memset(p, 0, sizeof(p));
    str[0] = '$';
    str[1] = '#';
    for (int i = 0; i < len1;i++) {
        str[i * 2 + 2] = s[i];
        str[i * 2 + 3] = '#';
    }
    len2 = 2 * len1 + 2;
    str[len2] = '*';
}
void Mancher()
{
    int mx = 0, id = 0;
    for (int i = 1; i < len2;i++) {
        if (i<mx)
            p[i] = min(p[id * 2 - i], mx - i);
        else
            p[i] = 1;
        while (str[i-p[i]]==str[i+p[i]])
            p[i]++;
        if (p[i]+i>mx) {
            mx = p[i] + i;
            id = i;
        }
    }
}
int main()
{
    int n;
    scanf("%d", &n);
    while (n--) {
        scanf("%s", s);
        len1 = strlen(s);
        init();
        Mancher();
        ans = 0;
        for (int i = 1; i < len2;i++)
            if (p[i]>ans)
                ans = p[i];
        printf("%d\n", ans - 1);
    }
    return 0;
}
hihoCoder第一周---最长回文子串(1032)的更多相关文章
- hiho一下 第一周 最长回文子串
		时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这 ... 
- 【hiho一下】第一周 最长回文子串
		题目1:最长回文子串 题目原文:http://hihocoder.com/contest/hiho1/problem/1 [题目解读] 题目与 POJ 3974 palindrome 基本同样.求解最 ... 
- hiho一下第一周 最长回文子串
		题目链接:http://hihocoder.com/contest/hiho1/problem/1 #include <iostream> #include <cstdio> ... 
- hihocoder 第一周 最长回文字串
		题目1 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程 ... 
- hiho 第1周 最长回文子串
		题目链接:http://hihocoder.com/problemset/problem/1032 #include <bits/stdc++.h> using namespace std ... 
- hihoCoder  hiho一下 第一周 #1032 : 最长回文子串   (Manacher)
		题意:给一个字符串,求最长回文子串的长度. 思路: (1)暴力穷举.O(n^3) -----绝对不行. 穷举所有可能的出现子串O(n^2),再判断是否回文O(n).就是O(n*n*n)了. (2)记录 ... 
- [hihoCoder] #1032 : 最长回文子串
		时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这 ... 
- hihocoder #1032 : 最长回文子串 Manacher算法
		题目链接: https://hihocoder.com/problemset/problem/1032?sid=868170 最长回文子串 时间限制:1000ms内存限制:64MB 问题描述 小Hi和 ... 
- hihocoder #1032 : 最长回文子串【 manacher算法实现 】
		#1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ... 
随机推荐
- 17..userinfo.txt 文件中存放以下结构:
			alex:alex3714 wusir:123456 meet:meet123 1.让用户选择: 1.注册 2.登录 2.用户选择注册就将账号和密码添加到userinfo.txt中,如果用户名存在就提 ... 
- 33、JSONP跨域
			跨域请求数据也是可以的,只不过Ajax这技术不行,而JSONP这种数据格式可以进行跨域.很多年前,浏览器是没有跨域限制的,可以正常跨域,浏览器为了安全和隐私限制了Ajax跨域 JSONP原理就是:将函 ... 
- Java语言规范 第3章 词法
- docker Mac安装和使用
			1.安装docker brew cask install docker 2.安装后可以用命令查看版本 docker --version 3.build java 项目(jar) docker buil ... 
- django_logging
			django使用python自带的logging打印日志 logging 是线程安全的,其主要由4部分组成: Logger 用户使用的直接接口,将日志传递给Handler Handler 控制日志输出 ... 
- Codeforces 1132D(二分模拟)
			要点 二分显然,关键在于怎么判断 题解方法:开k个队列代表每个时间有哪些电脑会挂掉,这部分O(n)预处理一下,之后扫一遍时间,每个时间点贪心选取最靠前的会挂的电脑未雨绸缪给它充电,然后看看充电以后要不 ... 
- SecureCRT无法连接虚拟机Linux—虚拟网卡(NAT方式)IP(169.254.xx.xx)无效问题
			搞了一晚上,终于解决了http://blog.csdn.net/zengxianyang/article/details/50394809 
- MVC dropdownlist 后端设置select属性后前端依然不能默认选中的解决方法
			-----------------------------------来自网上的解决方法--------------------------------------------- ASP.Net MV ... 
- ios has denied the launch request.
			ios has denied the launch request. You can choose either of the two ways. Solution 1: Open System Pr ... 
- 我的CentOS6.5下及windows7下 安装composer与Yii2的过程
			用yii2以来,安装composer老是不成功,所以一直在windows下的php里,用直接解压的方法运行yii2. 后来越来越多的场合,需要用composer,终于下决心,要在Linux下搞掂它! ... 
