Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
146852 abc21343333 统计回文子串 C++ Time Limit Exceeded 1000 MS 280 KB 1297 2026-01-31 23:15:40

Tests(0/1):


Code:

#include <bits/stdc++.h> using namespace std; string a; int f,i,j,s; int dg(int begin,int b,int c,int end) { int temp=1; while (begin<end) { if (a[b]==a[c]) { b--; c++; } else { temp=0; break; } begin++; end--; } if (temp!=0) s++; } int jo(int k) { int d,t; if (k%2==0) { if (f==0) { k=k/2-1; t=k; d=k+1; j=k; } else { t=(j+i)/2; d=j+1; if (d==t) d=t+1; } } else { if (f==0) { k=k/2; d=k+1; t=k-1; j=k; } else { t=(i+j)/2-1; d=(i+j)/2+1; } } dg(f,t,d,i); if (f==0) return j; } int main() { int k; cin>>a; s=a.size(); i=s-1; f=0; if (s>1) j=jo(s); k=0; while (k<2 and s>=3) { while (j<a.size()-1) { i=j+1; if (k==1 and a.size()>3) { i=j+2; k=2; } f=j; while (i<a.size()) { if (a.size()>2) jo(i-j+1); i++; } j++; } reverse(a.begin(),a.end()); j=1; k++; } cout<<s<<endl; return 0; }