RE25分代码求调,本地和洛谷在线IDE都AC了
查看原帖
RE25分代码求调,本地和洛谷在线IDE都AC了
402317
TimeIsFlying楼主2023/11/2 12:01
#include<bits/stdc++.h>
using namespace std;
const int N=3e6+5;
string s;
int n,f[N+1],g[N+1][30];
long long ans;
int main(){
//     freopen("game.in","r",stdin);
    //  freopen("game.out","w",stdout);
    // std::ios::sync_with_stdio(false);
    cin>>n;
    cin>>s;
    s=' '+s;
    for(int i=2;i<=n;i++){
        if(s[i]==s[i-1]){
            f[i]=f[i-2]+1;
            for(int j=0;j<26;j++){
                g[i][j]=g[i-2][j];
            }
            g[i][s[i-2]-'a']=i-2;
        } 
        else{
            if(g[i-1][s[i]-'a']){
                f[i]=f[g[i-1][s[i]-'a']-1]+1;
            }
            for(int j=0;j<26;j++){
                g[i][j]=g[g[i-1][s[i]-'a']-1][j];
            }
            if(g[i-1][s[i]-'a']){
                g[i][s[g[i-1][s[i]-'a']-1]-'a']=g[i-1][s[i]-'a']-1;
            }
        }
        ans+=f[i];
    }
    cout<<ans;
    return 0;   
}
2023/11/2 12:01
加载中...