B. 栈法师

    Type: Default File IO: sort 1000ms 256MiB

栈法师

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.

题目描述

传说中存在着一扇神秘的魔法大门,它通向着无尽的魔法宝藏。但是这扇大门只对那些能够熟练运用栈法杖的魔法师敞开。

大门的密码是一个序列 a[1...n]a[1...n],为了解锁大门,魔法师需要将 aa 中的数字输出到另一个序列 bb,并保证 bb 是非降序的。魔法师携带了 kk 根栈法杖作为解锁这扇神秘大门的工具。开始时,这些栈法杖都是空的,他可以使用三种栈法杖操作:

  1. (1,i)(1, i): 从序列 aa 的末尾取出一个数字(栈的 pop 操作),并将它储存到第 ii 根栈法杖中(栈的 push 操作)。
  2. (2,i)(2, i): 从第 ii 根栈法杖中取出最后一个储存的数字(栈的 pop 操作),并将其添加到输出序列 bb 的末尾(栈的 push 操作)。
  3. (3,i,j)(3, i, j): 从第 ii 根栈法杖中取出最后一个储存的数字(栈的 pop 操作),并将其添加给第 jj 根栈法杖(栈的 push 操作)。

注意,魔法师不能直接将序列 aa 的末尾数字添加到输出序列 bb 中。年轻的魔法师深思熟虑后,意识到只要他手中的栈法杖数量 kk 大于等于序列 aa 的总数 nn,他就一定能够解锁大门。

魔法师想知道,解锁大门所需的最少栈法杖数量 kk 是多少,并且设计一个巧妙的法杖操作方案,以确保输出序列 bb 是按非降序排列的。

需要找出完成解锁大门所需的最少栈法杖数量 kk,并且设计一个巧妙的栈法杖操作方案,以确保输出序列 b 是按非降序排列的。

输入格式

第一行1个整数 TT,代表有 TT 组数据

每组数据的第一行1个整数 nn,代表序列长度

第二行 nn 个正整数 a[i]a[i],代表序列中的元素

输出格式

对于每组数据,首先输出一行一个整数 kk 代表最少需要 kk 根栈法杖

第二行输出一个整数 mm 代表操作的次数

接下来 mm 行,你需要按以下格式输出操作方案:

  • (1,i,c)(1,i,c): 重复进行 cc 次1操作
  • (2,i)(2,i): 进行1次2操作
  • (3,i,j,c)(3,i,j,c): 重复进行 cc 次3操作

对于每组数据,你需要保证 mmax(104,5n)m\leq\max(10^4, 5n),操作中 1ijk1\leq i\neq j\leq k

请注意本题的输出量较大,请使用快速的输出方式

3
3
3 2 1
2
1 1
3
2 3 1
1
6
1 1 1
2 1
1 1 1
2 1
1 1 1
2 1
1
4
1 1 1
1 1 1
2 1
2 1
1
6
1 1 1
2 1
1 1 1
1 1 1
2 1
2 1

数据范围与提示

  • 对于测试点1-3,1n51\leq n\leq 5
  • 对于测试点4-6,1n1001\leq n\leq 100
  • 对于测试点7-8,1n105,1a[i]21\leq n\leq 10^5, 1\leq a[i]\leq 2
  • 对于测试点9-10,1a[i],n1051\leq a[i], n\leq 10^5
  • 对于所有测试点,$T\leq 100, 1\leq a[i], n\leq 10^5, \sum n\leq 3\times 10^5$ 本体开放spj,你只需要输出答案符合要求的任意一种即可

0709

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2025-7-9 8:30
End at
2025-7-9 11:00
Duration
2.5 hour(s)
Host
Partic.
30