P8437 题解
Register_int · · 题解
首先,对于一组
很容易发现,在第
但是有一个小小的问题。当
很明显,我们的算法炸了。原因就出在中间
特判一下即可得到正确答案。
AC 代码
#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int main() {
scanf("%d%d%d", &n, &m, &k);
if (k != 2) { // 特判k
for (int i = 1; i <= m; ++i) putchar(i & 1 ? 'l' : 'r'); // lr循环字串部分
for (int i = m + 1; i <= n; i += k + 1) { //lll...r循环部分
for (int j = i; j < i + k && j <= n; ++j) putchar('l');
if (i + k <= n) putchar('r');
}
} else {
for (int i = 1; i <= m - 2; ++i) putchar(i & 1 ? 'l' : 'r'); putchar('r'), putchar('l'); //lrlr...rl(小改动)
for (int i = m + 1; i <= n; i += 3) {
putchar('r');
if (i + 1 <= n) putchar('r');
if (i + 2 <= n) putchar('l');
}
}
}