按题意模拟即可,需要注意的是cpp的 insert 函数有多个重载版本,可以按个人喜好使用
本题可以是
s.insert(j, 1, s[j - 1]);
s.insert(s.begin() + j, s[j - 1]);
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
int __t = 1, n, q, l, r;
void solve() {
cin >> n >> q;
string s;
cin >> s;
for (int i = 1; i <= q; i++) {
cin >> l >> r;
for (int j = r; j >= l; j--) {
s.insert(s.begin() + j, s[j - 1]);
}
}
cout << s << "\n";
return;
}
int32_t main() {
#ifdef ONLINE_JUDGE
ios::sync_with_stdio(false);
cin.tie(0);
#endif
// cin >> __t;
while (__t--)
solve();
return 0;
}

京公网安备 11010502036488号