社区讨论
关于S组 T2 未知时间复杂度 MLE 90分求助
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lobes2i7
- 此快照首次捕获于
- 2023/10/29 19:49 2 年前
- 此快照最后确认于
- 2023/11/02 10:48 2 年前
CPP
#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;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...