C. Good Subarraystime
程序员文章站
2024-03-05 18:14:07
...
我们可以将这道题变换成为看相同的序列有多少个
前一个序列和后一个序列和相等,以为中间这一段数字都是一样的,符合要求的
我们将数字减去'1'代表着:我们将一个相加的数列变为看一段是不是有字符串是不是为0的
#include<bits/stdc++.h>
using namespace std;int T,n;
string s;map<int,int>mp;
int main(){
cin>>T;
while(T--){mp.clear();
cin>>n>>s;mp[0]++;
long long ans=0,sum=0;
for(int i=0;i<n;i++){
sum+=s[i]-'1';
ans+=mp[sum];mp[sum]++;
}
cout<<ans<<endl;
}
}
推荐阅读
-
Different is Good
-
C. Good Subarraystime
-
D. Good Triple
-
C.Good String
-
How to recognise a good programmer SocialrspecFlexPascalUP
-
Codeforces Round #459 (Div. 2) C. The Monster(枚举+思维)
-
asp.net CheckBoxList各项最小宽度CSS样式(兼容性good)
-
asp.net CheckBoxList各项最小宽度CSS样式(兼容性good)
-
Codeforces Round #449 (Div. 2) C. Nephren gives a riddle
-
Codeforces896 C. Willem, Chtholly and Seniorious(ODT)