CSP-S T2 复杂度求分析一下
  • 板块学术版
  • 楼主undefined_Ryan
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/22 20:11
  • 上次更新2023/10/22 21:10:43
查看原帖
CSP-S T2 复杂度求分析一下
482236
undefined_Ryan楼主2023/10/22 20:11

如题。很玄学的民间都是100,个人也没怎么理解

#include <cstdio>
#include <iostream>
using namespace std;
long long n,l[2000010],f[2000010],ans;
string s;
int main() {
    freopen("game.in","r",stdin);
    freopen("game.out","w",stdout);
    cin>>n>>s;
    s=" "+s;
    for (int i=1,j=1;i<=n;i++,j=i) {
        while (j&&s[j-1]!=s[i]) j=l[j-1];
        if (j) l[i]=j-1;
        if (l[i]) f[i]=f[l[i]-1]+1;
        ans+=f[i];
    }
    cout<<ans<<endl;
    fclose(stdin);
    fclose(stdout);
    return 0;
}
2023/10/22 20:11
加载中...