Codeforces Round 163 (Div.2)
A.
题目描述
思路
s[i]与前一位置进行比较。
代码
#include <iostream>
using namespace std;
#define akitama return 0
signed main() {
int n; cin >> n;
string s; cin >> s;
int cnt = 0;
for (int i = 1; i < n; ++ i) {
if (s[i] == s[i-1]) cnt++;
}
cout << cnt << endl;
akitama;
}
B.
题目描述
思路
暴力模拟,每次t–,记录boy的位置,强行进行左右交换。
代码
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
#define akitama return 0
#define pb push_back
#define vi vector<int>
vi b;
signed main() {
int n, t; cin >> n >> t;
string s; cin >> s;
while (t--) {
b.clear();
for (int i = 0; i < n - 1; i ++) {
if (s[i] == 'B') {
b.pb(i);
}
}
for (int i = 0; i < b.size(); ++ i) {
if (s[b[i]+1] == 'G') {
s[b[i]] = 'G';
s[b[i]+1] = 'B';
}
}
}
cout << s << endl;
akitama;
}
评论(已关闭)
评论已关闭