[CSP-S 2021] 回文

[CSP-S 2021] 回文

题目描述:

给定正整数 n 和整数序列 a1​,a2​,…,a2n​,在这 2n 个数中,1,2,…,n 分别各出现恰好 2 次。现在进行 2n 次操作,目标是创建一个长度同样为 2n 的序列 b1​,b2​,…,b2n​,初始时 b 为空序列,每次可以进行以下两种操作之一:

  1. 将序列 a 的开头元素加到 b 的末尾,并从 a 中移除。
  2. 将序列 a 的末尾元素加到 b 的末尾,并从 a 中移除。

我们的目的是让 b 成为一个回文数列,即令其满足对所有 1≤i≤n,有 bi​=b2n+1−i​。

请你判断该目的是否能达成,如果可以,请输出字典序最小的操作方案,具体在【输出格式】中说明。

输入格式:

每个测试点包含多组测试数据。

输入的第一行,包含一个整数 T,表示测试数据的组数。对于每组测试数据:

第一行,包含一个正整数 n。
第二行,包含 2n 个用空格隔开的整数 a1​,a2​,…,a2n​。

输出格式:

对每组测试数据输出一行答案。

如果无法生成出回文数列,输出一行 ‐1,否则输出一行一个长度为 2n 的、由字符 L 或 R 构成的字符串(不含空格),其中 L 表示移除开头元素的操作 1,R 表示操作 2。

你需要输出所有方案对应的字符串中字典序最小的一个。

字典序的比较规则如下:

长度均为 2n 的字符串 s1∼2n​ 比 t1∼2n​ 字典序小,当且仅当存在下标 1≤k≤2n 使得对于每个 1≤i<k 有 si​=ti​ 且 sk​<tk​。

输入输出样例

输入 #1:

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

输出 #1:

LRRLLRRRRL
-1

输入 #2:

见附件中的 palin/palin2.in

输出 #2:

见附件中的 palin/palin2.ans

说明/提示

【样例解释 #1】

在第一组数据中,生成的的 b 数列是 [4, 5, 3, 1, 2, 2, 1, 3, 5, 4],可以看出这是一个回文数列。

另一种可能的操作方案是 LRRLLRRRRR,但比答案方案的字典序要大。

【数据范围】

令 ∑n 表示所有 T 组测试数据中 n 的和。

对所有测试点保证 1≤T≤100,1≤n,∑n≤5×10^5。

测试点编号 T≤ n≤ ∑n≤ 特殊性质
1∼7 10 10 50
8∼10 100 20 1000
11∼12 100 100 1000
13∼15 100 1000 25000
16∼17 1 5×10^5 5×10^5
18∼20 100 5×10^5 5×10^5
21∼25 100 5×10^5 5×10^5

特殊性质:

如果我们每次删除 a 中两个相邻且相等的数,存在一种方式将序列删空(例如 a = [1, 2, 2, 1])。 

附件下载:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙星尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值