题意:https://www.luogu.com.cn/problem/CF1678B2
思路:对于这种每段都是偶数的题来说,我们直接划分成最小的偶数段也就是2个一段,然后出现不一样我们就需要操作一次,对于最小段数来说我们直接看有多少已经确定的段数就行。
/*keep on going and never give up*/
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
#define int long long
typedef pair<int, int> pii;
#define lowbit(x) x&(-x)
#define endl '\n'
#define wk is zqx ta die
signed main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
string s;
cin >> s;
int ans = 0;
int ans1 = 0;
int now = -1;
for (int i = 0; i < s.size(); i += 2) {
if (s[i] == s[i + 1] && (s[i] - '0') != now) {
now = s[i] - '0';
ans++;
}
if (s[i] != s[i + 1]) {
ans1++;
}
}
if (ans == 0) {
ans++;
}
cout << ans1 << " " << ans << endl;
}
return 0;
}