题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3294

题意:给你一个字符和一个字符串,第一个字符表示该字符代表a,然后让你求变换后的最长回文区间并输出(这里的回文长度要大于1)

题解:直接上马拉车,然后记录一下区间

  1. #include<cstdio>
  2. #include<cstring>
  3. #define min(a,b) (a)>(b)?(b):(a)
  4. #define max(a,b) (a)>(b)?(a):(b)
  5. const int maxn = ;//字符串长度
  6. int lb,rb;//左右区间
  7. struct Manacher{
  8. char str[maxn<<];
  9. int p[maxn<<],len,mx,id,tl,ans,i;
  10. int maxlen(char *s){
  11. len=strlen(s),mx=,id=,tl=,str[tl++]='$',str[tl++]='#';
  12. for(i=;i<len;i++)str[tl++]=s[i],str[tl++]='#';
  13. for(i=,str[tl]=,ans=;i<tl;i++){
  14. p[i]=mx>i?min(p[(id<<)-i],mx-i):;
  15. while(str[i-p[i]]==str[i+p[i]])p[i]++;
  16. if(i+p[i]>mx)mx=i+p[i],id=i;
  17. if(ans<p[i])ans=p[i],lb=(i-p[i])/,rb=(i+p[i])/-;
  18. }
  19. return ans-;
  20. }
  21. }M;
  22. char s[maxn],tt[];
  23. int main(){
  24. while(~scanf("%s%s",tt,s)){
  25. for(int i=,tmp=tt[]-'a';s[i]!='\0';i++){
  26. s[i]-=tmp;
  27. if(s[i]<'a')s[i]=s[i]-'a'+'z'+;
  28. }
  29. int r=M.maxlen(s);
  30. if(r>){
  31. printf("%d %d\n",lb,rb);
  32. for(int i=lb;i<=rb;i++)printf("%c",s[i]);
  33. printf("\n");
  34. }else printf("No solution!\n");
  35. }
  36. return ;
  37. }

hdu_3294_Girls' research(Manacher)的更多相关文章

  1. Girls' research(manacher)

    Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  2. hdu 3294 Girls' research(manacher)

    Problem Description One day, sailormoon girls are so delighted that they intend to research about pa ...

  3. hdu3294 Girls' research manacher

    One day, sailormoon girls are so delighted that they intend to research about palindromic strings. O ...

  4. HDU3294 Girls' research —— Manacher算法 输出解

    题目链接:https://vjudge.net/problem/HDU-3294 Girls' research Time Limit: 3000/1000 MS (Java/Others)    M ...

  5. Hdu 3294 Girls' research (manacher 最长回文串)

    题目链接: Hdu 3294  Girls' research 题目描述: 给出一串字符串代表暗码,暗码字符是通过明码循环移位得到的,比如给定b,就有b == a,c == b,d == c,.... ...

  6. 【 HDU3294 】Girls' research (Manacher)

    BUPT2017 wintertraining(15) #5F HDU - 3294 题意 给定字母x,字符串变换一下: 'x'-1 -> 'z', 'x'->'a', 'x'+1-> ...

  7. HDU----(3294)Girls' research(manacher)

    Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)T ...

  8. (回文串 Manacher )Girls' research -- hdu -- 3294

    http://acm.hdu.edu.cn/showproblem.php?pid=3294 Girls' research Time Limit:1000MS     Memory Limit:32 ...

  9. HDU 3294 (Manacher) Girls' research

    变形的求最大回文子串,要求输出两个端点. 我觉得把'b'定义为真正的'a'是件很无聊的事,因为这并不会影响到最大回文子串的长度和位置,只是在输出的时候设置了一些不必要的障碍. 另外要注意一下原字符串s ...

随机推荐

  1. LWP::UserAgent介绍2

    #这个LWP::UserAgent一般要配合其他模块使用 #比如: #HTTP::Request #HTTP::Cookie #HTTP::Respose #HTTP::Status #LWP::Us ...

  2. Spring 配置文件XML -- <beans>中属性概述

    beans : xml文件的根节点. xmlns : XML NameSpace的缩写,因为XML文件的标签名称都是自定义的,自己写的和其他人定义的标签很有可能会重复命名,而功能却不一样,所以需要加上 ...

  3. C# lesson1

    一.C#和.net平台 .net是一个软件,一个平台(一般在windows自带 或者在vs里面已经有了) C#是一门运行在.net平台上的语言,需要编译:C#经过.net framework里面的编译 ...

  4. MySQL-Front 出现“程序注册时间到期 程序将被限制模式下运行”解决方式

    MySQL-Front 出现“程序注册时间到期 程序将被限制模式下运行”解决方式 在用mysql-front的时候遇到显示:程序注册时间到期程序将被限制模式下运行.可以在“帮助”菜单下的点“登记”-- ...

  5. Unity3D 导出的apk进行混淆和加固防止反编译

    前言: 对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的apk进行代码加固和混淆. 准备资料: 1:Obfuscator.zip  作用是代码混淆, ...

  6. Struct和Class的区别(转载)

    转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.html C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据 ...

  7. scala调用外部命令

     scala调用外部命令 1.  导入sys.process包 2. 调用方式:" 外部命令 " !     双引号内+外部命令+感叹号 例:     scala调用外部命令工作原 ...

  8. gulp学习笔记(一)

    gulp 是基于 Nodejs 的自动任务运行器,能自动化地完成javascript/coffee/sass/less/html/image/css等文件的的测试.检查.合并.压缩.格式化.浏览器自动 ...

  9. 【ORACLE】“System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。”解决办法

    我的电脑是win10.64位.问题如题,在网上找了很多办法都没搞好,如下: 1.给oracle目录设置“Authenticated Users”用户的“读取/写入”权限 2.IIS网站物理路径凭据添加 ...

  10. 第三课3、ROS的launch文件

    1.launch 参数说明: pkg为节点的功能包,type为需要运行的那个节点,name为节点的名字,后面的参数可选 举个例子: 在工作空间中新建一个包: 然后再回到工作空间中去编译: 再在包目录下 ...