蒟蒻char数组被卡常64分求助
查看原帖
蒟蒻char数组被卡常64分求助
238310
guosoun楼主2022/6/29 20:43

还有什么可以优化的地方吗?谢谢

#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
using namespace std;
const int N=2e7;
char s2[N],s[N];
int n,d[N],maxr,c,ans=0,cnt=-1;
int main(){
    ios::sync_with_stdio();
    cin>>s2;n=strlen(s2);s[++cnt]='#';s[++cnt]='$';
    n<<=1,n+=2;for(int i=1;i<=n;i+=2) s[++cnt]=s2[(i-1)/2],s[++cnt]='$';
    for(int i=1;i<=n;i++){
        if(i<maxr) d[i]=min(d[(c<<1)-i],maxr-i);
        while(s[i-d[i]-1]==s[i+d[i]+1]) d[i]++;
        if(d[i]+i>maxr) maxr=d[i],c=i;
        ans=max(ans,d[i]);
    }
    cout<<ans;
    return 0;
}
2022/6/29 20:43
加载中...