题解:P10368 「LAOI-4」Colors

· · 题解

实际上,最多经过两次,就不会再改变了。

因为第一次操作后剩下的最多只会有连续的 2 个相同字符了。

所以,直接暴力就好了。

代码如下。

#include <iostream>
using namespace std;

long long T, id;

string s;

int main() {
    cin >> T >> id;
    while(T--) {
        long long n, k;
        cin >> n >> k;
        string s;
        cin >> s;
        long long flag = 1, cnt = 0;
        while(flag && cnt < k) {
            string t = "";
            cnt++;
            flag = 0;
            t += s[0];
            for(long long i = 1; i < s.size() - 1; i++) {
                if(s[i - 1] != s[i + 1]) t += s[i];
                if(s[i - 1] == s[i + 1]) flag = 1;
            }
            if(s.size() != 1) t += s[s.size() - 1];
            s = t;
        }
        cout << s << endl;
    }
}