题库/S0117

#S0117. 【21CSPS提高组】回文(palin)

    传统题 难度: 普及+ 标签>一本通交换论证与贪心反例双端队列
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

S0117 · 【21CSPS提高组】回文(palin)

退出在线编程模式
普及+ 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

给定正整数 nn 和整数序列 a1a_1, a2a_2, , a2na_{2n},在这 2n2n 个数中,11, 22,... , nn 分别各出现恰好 22 次。现在进行 2n2n 次操作,目标是创建一个长度同样为 2n2n 的序列 b1b_1, b2b_2, , b2nb_{2n},初始时 b 为空序列,每次可以进行以下两种操作之一: 1、将序列 aa 的开头元素加到 bb 的末尾,并从 aa 中移除 2、将序列 aa 的末尾元素加到 bb 的末尾,并从 aa 中移除 我们的目的是让 bb 成为一个回文数列,即令其满足对所有 1≤i≤n1 ≤ i ≤ n,有 bib_i = b2n+1−ib_{2n+1−i}。 请你判断该目的是否能达成,如果可以,请输出字典序最小的操作方案,具体在【输出格式】中说明。

输入

每个测试点包含多组测试数据。 输入的第一行包含一个整数 TT,表示测试数据的组数。 每组测试数据的第一行包含一个正整数 nn,第二行包含 2n2n 个用空格隔开的整数a1a_1, a2a_2, . . . , a2na_{2n}。

输出

对每个测试数据输出一行答案。 如果无法生成出回文数列,输出一行 −1-1,否则输出一行一个长度为 2n2n 的、由字符LL 或 RR 构成的字符串(不含空格),其中 LL 表示移除开头元素的操作 11,RR 表示操作 22。 你需要输出所有方案对应的字符串中字典序最小的一个。 字典序的比较规则如下:长度均为 2n2n 的字符串 s1..2ns_{1..2n} 比 t1..2nt_{1..2n} 字典序小,当且仅当存在下标 1≤k≤2n1 ≤ k ≤ 2n 使得 ∀1 ≤ i < k 有 si=tis_i = t_i 且 s_k < t_k。

输入样例

2
5
4 1 2 4 5 3 1 2 3 5
3
3 2 1 2 1 3

输出样例

LRRLLRRRRL
‐1

提示

【样例 1 解释】 在第一组数据中,生成的的 bb 数列是 4 5 3 1 2 2 1 3 5 4,可以看出这是一个回文数列。 另一种可能的操作方案是 LRRLLRRRRR,但比答案方案的字典序要大。 【样例 2】 见选手目录下的 palin/palin2.in 与 palin/palin2.ans。 【数据范围】 令∑n∑n 表示所有 TT 组测试数据中 nn 的和。 对所有测试点保证 1≤T≤1001 ≤ T ≤ 100, 1≤n1 ≤ n,∑n≤5×105∑n ≤ 5 × 10^5。

测试点编号 T n ∑n 特殊性质
1 ∼ 7 ≤ 10 ≤ 10 ≤ 50无
8 ∼ 10≤ 100≤ 20≤ 1000
11 ∼ 12 ≤ 100
13 ∼ 15 ≤ 1000 ≤ 25000
16 ∼ 17 = 1≤ 5 × 105 ≤ 5 × 105
18 ∼ 20≤ 100有
21 ∼ 25 无
特殊性质:如果我们每次删除 $a$ 中两个相邻且相等的数,存在一种方式将序列删空(例如 $a = [1, 2, 2, 1]$)。 本题目评测默认开启-O2。

输出符号说明

原排版的‐1表示整数-1,提交时输出半角负号。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共5个测试点,非原站或官方原始数据。总分100分。

题目信息

#1973
—

暂无提交记录

练习难度 普及+
时间限制
1000ms
内存限制
512MiB
上传者