hdu 3294 Girls' research
2024-08-31 16:17:31
#include<stdio.h>
#include<string.h>
#define MAX 200020
char s[MAX],ss[MAX*2],str[2];
int p[MAX*2];
int chance(char s)
{
return (s- str[0] + 26) % 26 + 'a';
}
int min(int a,int b){return a>b? b:a;}
int main()
{
int i,id,mx,max,n,j,ans,m; while(scanf("%s%s",str,s)!=EOF)
{
ss[0]='$';
n=strlen(s);
for(i=0;i<n;i++)
{
ss[2*i+1]='#';
ss[2*(i+1)]=s[i];
}
ss[2*i+1]='#';
ss[2*(i+1)]='\0';
id=1;
max=0;
mx=0;
for(i=1;i<2*n+2;i++)
{
if(mx>i)
p[i]=min(p[2*id-i],mx-i);
else
p[i]=1;
while(ss[i+p[i]]==ss[i-p[i]])
{
p[i]++;
}
if(i+p[i]>mx)
{
mx=i+p[i];
id=i;
}
if(p[i]>max) {j=i; max=p[i];} }
if(max-1<2)
printf("No solution!");
else
{
if(j%2)
ans=(j/2-(max-1)/2)+1;
else
ans=j/2-(max-1)/2;
m=j/2+(max-1)/2;
printf("%d %d\n",ans-1,m-1);
for(i=ans-1;i<m;i++)
printf("%c",chance(s[i]));
printf("\n");
}
}
return 0;
}
最新文章
- JTextField 限制指定字符不能输入
- Three.js的光源投影
- hibernate的like用法(用占位符解决)
- java GUI之事件处理
- Linux shell 脚本攻略之根据扩展名切分文件名
- 编译安装 php 5.4.11
- 怎么加sudo权限
- 前端框架Bootstrap - 快速搭建网站
- 高端内存映射之vmalloc分配内存中不连续的页--Linux内存管理(十九)
- [转帖]SUSE Linux
- fcitx4.2.0自定义中文标点符号
- Android自动化测试之Monkeyrunner使用方法及实例
- v-show v-if 的使用
- jenkins使用jacoco插件检测代码覆盖率(八)
- Oracle12c中性能优化&;amp;功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护
- 定期删除Azure存储账号下N天之前的数据文件-ARM
- 一致性hash理解
- NSUserDefaults保存对象数组报错
- 【FZU 2277】Change
- Java多线程-一个简单的线程,实现挂起和恢复的功能