CF 1421C Palindromifier

题目描述

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;
}