D. 楼房又重建 (rebuild)

    Type: Default File IO: rebuild 1000ms 256MiB

楼房又重建 (rebuild)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小 Y 生活的 Z 市位于一个狭长的盆地,因此形成了独有的奇观——所有的楼房是排成一列建造的!

具体的,Z 市一共有 nn 个建筑从东到西依次排列,第 ii 个建筑的高度为 aia_i 米。Z 市的设计师们为了体现不同建筑的区别,保证了这些高度 a1,a2,,ana_1,a_2,\cdots,a_n 构成了一个 1,2,,n1,2,\dots,n 的排列。

Z 市的人们相信一栋建筑是“楼王”,当且仅当所有它东侧的建筑都比它矮。换言之,第 ii 个建筑是“楼王”当且仅当 ai>max(a1,a2,,ai1)a_i>\max(a_1,a_2,\dots,a_{i-1}) 。Z 市的人们都很喜欢楼王,所以定义 Z 市的美观度为“楼王”的个数。

现在 Z 市的市长小 Z 决定将这些楼房重建,但推倒的代价太大,于是小 Z 选择了小 Y 提供的新技术 “乾坤大挪移”。具体的,一次乾坤大挪移基于一个预先设置的 1,2,,n1,2,\cdots,n 的排列 b1,b2,,bnb_1,b_2,\dots,b_n,执行完乾坤大挪移后,原本在从东到西的第 bib_i 个建筑会被移到从东到西的第 ii 个位置。

执行乾坤大挪移同样有一定的代价。小 Y 注意到,对于排列 bb 中的每一个数 bib_i ,如果存在某个j<ij<i 满足 bj>bib_j>b_i,那么在 bib_i 处就会产生 11 的代价(每个位置 ii 最多只会产生 11 的代价)。现在小 Y 请你来给他出谋划策,请你为他寻找一个 1,2,,n1,2,\cdots,n 的排列 b1,b2,,bnb_1,b_2,\dots,b_n,使得按此执行完“乾坤大挪移”后,Z 市的美观度减去乾坤大挪移的代价最大。

输入格式

rebuild.in 文件读入数据。

第一行一个整数 TT,代表数据组数。对于每组数据:

第一行一个整数 nn

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,代表 Z 市的建筑初始的高度,保证 a1,a2,,ana_1,a_2,\cdots,a_n1,2,,n1,2,\dots,n 的一个排列。

输出格式

输出到 rebuild.out 文件。

对于每组测试数据,输出一行 nn 个整数 b1,b2,,bnb_1,b_2,\cdots,b_n 代表你选择的排列。如果有多个可能的答案,你只需要输出其中一个。

样例

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

对于样例中的第一个数据,乾坤大挪移后从东到西的高度为 1,2,31,2,3,楼王的个数为 33,乾坤大挪移的代价为 00

对于样例中的第二个数据,乾坤大挪移后从东到西的高度为 2,3,1,42,3,1,4,楼王的个数为 33,乾坤大挪移的代价为 11

对于样例中的第三个数据,乾坤大挪移后从东到西的高度为 1,2,3,4,51,2,3,4,5,楼王的个数为 55,乾坤大挪移的代价为 22

数据范围

对于每个测试点,1T1051 \leq T\leq 10^51n2×1051 \leq n\leq 2\times 10^5TT 组数据的 nn 之和不超过 2×1052\times 10^5

子任务 分数 附加约束条件
11 1010 ai=ia_i=i
22 1515 n10n\le 10
33 2020 只存在两个位置满足 aiia_i\not =i
44 2525 n2×103n\le 2\times 10^3
55 3030 无附加限制

NOIP1测

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-11-6 13:30
End at
2024-11-6 17:30
Duration
4 hour(s)
Host
Partic.
8