比赛 NOIP模拟赛by mzx Day2 评测结果 AAAWAAAAAA
题目名称 拯救紫萱学姐 最终得分 90
用户昵称 宋逸群 运行时间 0.232 s
代码语言 C++ 内存使用 14.87 MiB
提交时间 2016-10-20 20:55:30
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
using namespace std;
#define mod 2323237
#define MAXN 1000010
typedef long long ll;
ll n,len,temp,ans,v[MAXN],pre[MAXN];
char ch[MAXN];
void work()
{
	while(1){
		temp=0;
		for(ll i=2;i<=len;i++)
			if(ch[i]==ch[1]){
				ll flag=1;
				for(ll j=i+1;j<=len;j++)  if(ch[j]!=ch[1+j-i])  {flag=0;  break;}
				if(flag)  {temp=len-i+1;  break;}
			}
		ans+=(len-temp)*(len-temp);
		len=temp;
		if(!temp)  break;
	}
}
int main()
{
	freopen("savemzx.in","r",stdin);
	freopen("savemzx.out","w",stdout);
	scanf("%s",ch+1);  n=strlen(ch+1);  ll flag=1;
	for(ll i=1;i<n;i++)  if(ch[i]!=ch[i+1])  {flag=0;  break;}
	if(flag)  {printf("%d\n",n-1);  return 0;}
	len=n;  work();
	len=n-1;  work();
	printf("%lld\n",ans);
	return 0;
}