求助!敲2节课了;后面的全RE

P6739 [BalticOI 2014 Day1] Three Friends

改了之后后面都是tle,有优化的方法吗 ``` cpp #include<iostream> #include<string> using namespace std; const int p=13; unsigned long long a[1000001],b[1000001]; bool check(string s){ int len=s.length(); int m=len/2; string s1=s.substr(0,m),s2=s.substr(m); for(int i=0;i<s1.size();i++)a[i+1]=a[i]*p+s1[i]; for(int i=0;i<s2.size();i++)b[i+1]=b[i]*p+s2[i]; if(a[s1.size()]==b[s2.size()])return true; else return false; } int main(){ int n,cnt=0; cin>>n; string str,s,t; cin>>str; if(n%2==0){cout<<"NOT POSSIBLE";return 0;} for(int i=0;i<n;i++){ string x=str.substr(i,1); str.erase(i,1); if(check(str)){s=str.substr(0,str.length()/2);cnt++;} str.insert(i,x); if(cnt==2&&x!=t){cout<<"NOT UNIQUE";return 0;} t=x; }if(cnt==1)cout<<s; else if(cnt==0) cout<<"NOT POSSIBLE"; else cout<<s; } ```
by godess @ 2024-03-27 18:03:11


|