比赛 20230806测试 评测结果 AAATTTTTTT
题目名称 叉叉 最终得分 30
用户昵称 宇战 运行时间 7.000 s
代码语言 C++ 内存使用 57.76 MiB
提交时间 2023-08-06 10:12:02
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
char a[100010];
int n,m,s,d[200][100010],v[100010],bb[1000];
int main(){
    freopen("xxxx.in","r",stdin);
    freopen("xxxx.out","w",stdout);
    cin>>a;
    for(int i=0;i<strlen(a);i++){
        d[a[i]][i]++;
        bb[a[i]]=1;
        for(char j='a';j<='z';j++){
            if(d[j][i]){
                d[j][i+1]=d[j][i];
            }
        } 
    }
    bool o=0;
    char x;
    int jj=0;
    for(int i=0;i<strlen(a);i++){
        if(o==0&&v[i]==0){
           x=a[i];
           o=1;
           jj=i;
           v[i]=1;
        }else if(o&&a[i]==x&&v[i]==0){
            o=0;
            v[i]=1;
            if(i==jj+1)continue;
            for(char j='a';j<='z';j++){
                if(!bb[j])continue;
                if(j!=x){
                    int yy;
                   if(d[j][jj]%2==0){
                       yy=d[j][jj];
                   }else{
                       yy=d[j][jj]+1;
                   }
                   if((d[j][i-1]-yy)%2==1){
                       s++;
                   } 
                }
            }
            i=jj;
            
        }
    }
    cout<<s;
    return 0;
}