题目描述
https://codeforces.com/contest/1421/problem/C
Solution
比较简单的构造题?
注意到如果能够 L 1
或者 R 1
那么就直接做完了
那么我们考虑先 L 2
,想当于把 $s_2$ 放到第一位,然后我们再进行 R 2
就能达到我们之前的目的
但是这时候在最左面多出来一个 $s_2$,解决方法就是把右边倒数第二个翻一下,因为这两个字符是一样的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <iostream> #include <cstdio> #include <cstring> #define maxn 100010 using namespace std;
int n;
char s[maxn];
int main() { scanf("%s", s + 1); n = strlen(s + 1); puts("3"); puts("L 2"); puts("R 2"); printf("R %d\n", 2 * n - 1); return 0; }
|