关于S组 T2 未知时间复杂度 MLE 90分求助
  • 板块学术版
  • 楼主jamesharden666
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/10/29 19:48
  • 上次更新2023/11/2 10:48:23
查看原帖
关于S组 T2 未知时间复杂度 MLE 90分求助
342244
jamesharden666楼主2023/10/29 19:48
#include<bits/stdc++.h>
using namespace std;
int n,cnt=0,tot=0;
long long ans=0;
char a[2000000+10];
string s;
unordered_map<string,int> p;
int main()
{
    scanf("%d %s",&n,a+1);
    s=a[1];
    p[s]++;
    for(int i=2;i<=n;++i)
    {
        int l=s.size();
        if(a[i]==s.back()) s.pop_back();
        else s.push_back(a[i]);
        if(s.size()==0)
        {
            ans=ans+tot+1;
            tot++;
        }
        else
        {
            ans=ans+p[s];
            p[s]++;
        }
    }   
    printf("%lld",ans);
    return 0;
}
2023/10/29 19:48
加载中...