车站有两种设备。小型调转轨道把相邻两节倒序,耗电 1。三节回旋轨道把相邻三节倒序,耗电 0。目标是让卸货等级从左到右严格递增。
三节倒序只交换两端,中间不动,也就是免费交换下标相差 2 的两节。反复使用它,可以在全部奇数位之间任意重排,也可以在全部偶数位之间任意重排,但不会把一节车厢从奇数位送到偶数位。
把卸货等级离散成名次。名次从 0 数起,名次越小越靠左,名次为 p 的车厢最终停在下标 p。因此名次的奇偶必须和下标的奇偶相同。
设有 x 节车厢停在偶数下标上,名次却是奇数。那么奇数下标上也恰好有 x 节车厢的名次是偶数。相邻对调一次,最多把这样一对车厢同时换到正确的一侧,三节倒序则完全改变不了 x。所以耗电至少是 x。
多多在这座火车站担任调度。
今天驶入的货运列车一共挂了 L 节车厢,自左向右记作第 1,2,…,L 节。第 t 节所装货物的卸货等级记为 Bt,各节的卸货等级两两不同。
为了让后面卸货更顺手,多多要把整列车厢排成卸货等级自左向右严格变大的样子。
站台上已经备好两套专用器具:
这两种设备要用几次、谁先谁后,以及压在列车哪一段紧邻车厢上,多多都能自由安排。请算出排成上述目标次序时,最少要用掉多少单位的电。
首行一个整数 Q(1≤Q≤10),表示测试一共有几组。
后面共 Q 行,每一行对应一组。行首整数 L(1≤L≤105)是本组车厢节数,随后 L 个整数 B1,B2,…,BL(0≤Bt≤109)是各节的卸货等级。全部 Bt 彼此不相等,读进来的每个数都是整数。
写出 Q 行,每行一个整数,对应该组最少消耗的电量。
输入
2
4 1 3 2 4
3 3 2 1
输出
1
0
说明
第一组卸货等级是 1,3,2,4。小型调转轨道把第 2 节和第 3 节倒序后得到 1,2,3,4,耗电 1。不耗电时,只能交换第 1 节与第 3 节,或者交换第 2 节与第 4 节。交换之后奇数位仍是 1 和 2,而目标次序的奇数位是 1 和 3,所以耗电不能是 0。
第二组卸货等级是 3,2,1。三节回旋轨道把这三节整段倒序,得到 1,2,3,耗电 0。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册