Codeforces Round #587 (Div. 3)

A. Prefixes

题目链接:https://codeforces.com/contest/1216/problem/A

题目大意:

(input)输入n,表示下一行输入的字符串的长度,输入str

通过最少的操作数来达到每偶数段(1~2*n)a的个数和b的个数是相等

解题思路:

简单的模拟,每次维护长度为2的区间,如果在这区间中,两个相同那么必定要进行一次操作cnt++,改s[i]或s[i+1]无区别,故所有偶数区间都能满足

#include <bits/stdc++.h>
#define REP(i, a, b) for(int i = a; i < b; i++)
#define REP_(i, a, b) for(int i = a; i <= b; i++)
#define sl(n) scanf("%lld", &n);
#define si(n) scanf("%d", &n);
#define RepAll(a) for(auto x: a)
#define cout(ans) cout << ans << endl;
typedef long long ll;

using namespace std;
int main(){
    ll n, cnt = 0;
    sl(n);
    string s;
    cin >> s;
    for(int i = 0; i < s.size() -  1; i+=2){
        //每两位每两位的检查
        if(s[i] == s[i + 1]){
            cnt++;
            s[i + 1] == 'a' ? s[i+1] = 'b' : s[i+1] = 'a';
        }
    }
    cout << cnt << '\n' << s << endl;
}

 

发布了66 篇原创文章 · 获赞 3 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览