#P12973. 一道搞笑的构造题
一道搞笑的构造题
题目背景
Many thanks to idea provider
https://www.luogu.com.cn/user/477443
构造题真的有那么难吗?
题目描述
设 是一个序列,定义 为 中最小没有出现的正整数, 为 的第 项到 的第 项组成的连续子序列。
给你 ,让你构造一个 的排列 ,使得
$$\sum\limits_{l = 1}^n \sum\limits_{r = l}^n \operatorname{MEX}(a[l, r]) $$的值最大。(如果看不懂可以看题目末尾)
如果有多个 的构造方案,请你输出字典序最小的一个。
输入格式
第一行一个整数 ,表示数据组数。
对于每组数据,第一行一个整数 。
输出格式
对于每一个数据输出一行,表示你构造出来的 。
3
1
2
3
1
1 2
2 1 3
提示
【样例解释】
对于第二组测试数据():
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
上述式子的值为 。
对于第三组测试数据():
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
,最小没有出现的正整数是 。
上述式子的值为 。
可以证明,没有其他的排列可以使得上述式子的值比答案更大,且没有其他的排列可以使得上述式子的值与答案相等的同时字典序比答案小。
【数据范围】
记一个测试点所有的 之和为 。
对于 的数据:。
对于 的数据:,,。
【温馨提示】
$$\sum\limits_{l = 1}^n ( \sum\limits_{r = l}^n \operatorname{MEX}(a[l, r])) $$的伪代码如下:
for each l in range(1,n):
for each r in range(l,n):
result = result+MEX(l,r)
最终结果为 。