Codeforces 451D Count Good Substrings

来源:互联网 发布:实木颗粒板 知乎 编辑:程序博客网 时间:2024/05/16 13:57

动态规划

从前往后记录a和b出现的次数和位置

两边字母相同的子串一定是符合条件的子串

#include<bits/stdc++.h>using namespace std;int main(){    int sumeven[2],sumodd[2];char s[100020];scanf("%s",s);long long even=0,odd=0;int len=strlen(s);    sumeven[0]=sumeven[1]=sumodd[0]=sumodd[1]=0;    for (int i=0;i<len;i++)    {        odd++;        int x=s[i]-'a';        if (i%2==0)        {            odd+=sumeven[x];            even+=sumodd[x];            sumeven[x]++;        }        else        {            odd+=sumodd[x];            even+=sumeven[x];            sumodd[x]++;        }    }cout<<even<<" "<<odd<<endl;    return 0;}


0 0
原创粉丝点击