zoukankan      html  css  js  c++  java
  • D. AB-string

    https://codeforces.com/contest/1238/problem/D

    题目大意:统计good string的个数,good string的定义,给定的字符串中含有回文段落,

    题解:给定的字符串,一共可以分割为n*(n-1)/2个段落,然后只有类似于ABBB,BAAA,AAAB,BBBA不含回文段,其他均含回文段,所以只要统计给定的字符串中其个数,然后相减就可以了

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    void solve(){
        ll n;
        cin>>n;
        string s;
        cin>>s;
        ll ans=0;
        ll sum=0;
        for(ll i=0;i<n;i++){
            if(s[i]=='B'){
                for(ll j=i-1;j>=0;j--){
                    if(s[j]=='A') ans++;
                    else break;
                }
                for(ll j=i+1;j<n;j++){
                    if(s[j]=='A') ans++;
                    else break;
                }
            }
            if(s[i]=='A'){
                for(ll j=i-1;j>=0;j--){
                    if(s[j]=='B') ans++;
                    else break; 
                }
                for(ll j=i+1;j<n;j++){
                    if(s[j]=='B') ans++;
                    else break;
                }
            }
        }
        for(ll i=1;i<n;i++){
            if(s[i]!=s[i-1]) sum++;
        }
        ans-=sum;
        cout<<n*(n-1)/2-ans<<endl; 
    }
    int main(){
        ios::sync_with_stdio(false);
        solve();
        return 0;
    }
  • 相关阅读:
    python操作excel表格
    重学Java
    重学Java
    重学Java
    重学Java
    重学Java
    博客园自定义主题及目录组件
    重学Java
    修改 Eclipse 背景颜色的高级方法
    dbf转excel
  • 原文地址:https://www.cnblogs.com/Accepting/p/11656931.html
Copyright © 2011-2022 走看看