题目名称 3812. [NOIP 2022] 喵了个喵
输入输出 noip2022_meow.in/out
难度等级 ★★★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 20
题目来源 GravatarBenjamin 于2022-11-26加入
开放分组 全部用户
提交状态
分类标签
NOIP/CSP 构造
分享题解
通过:4, 提交:11, 通过率:36.36%
Gravatar┭┮﹏┭┮ 100 5.768 s 10.88 MiB C++
Gravatar┭┮﹏┭┮ 100 5.826 s 11.02 MiB C++
Gravatar 100 8.304 s 10.91 MiB C++
Gravatarsywgz 100 10.017 s 59.28 MiB C++
Gravatar┭┮﹏┭┮ 20 5.811 s 5.24 MiB C++
Gravatarsywgz 20 8.596 s 17.84 MiB C++
Gravatarsywgz 20 8.667 s 17.85 MiB C++
Gravatarsywgz 15 2.497 s 32.44 MiB C++
Gravatar┭┮﹏┭┮ 15 6.767 s 5.19 MiB C++
Gravatar┭┮﹏┭┮ 0 6.697 s 4.87 MiB C++
关于 喵了个喵 的近10条评论(全部评论)
喵喵喵?
Gravatar┭┮﹏┭┮
2023-08-13 19:43 2楼
娘的,15分这么难写
Gravatar┭┮﹏┭┮
2023-08-13 17:40 1楼

3812. [NOIP 2022] 喵了个喵

★★★★   输入文件:noip2022_meow.in   输出文件:noip2022_meow.out   评测插件
时间限制:1 s   内存限制:512 MiB

【题目描述】

小 $E$ 喜欢上了一款叫做《喵了个喵》的游戏。这个游戏有一个牌堆和 $n$ 个可以从栈底删除元素的栈,任务是要通过游戏规则将所有的卡牌消去。开始时牌堆中有 $m$ 张卡牌,从上到下的图案分别是 $a_1, a_2, · · · , a_m$。所有的卡牌一共有 $k$ 种图案,从 $1$ 到 $k$ 编号。牌堆中每一种图案的卡牌都有偶数张。开始时所有的栈都是空的。这个游戏有两种操作:

• 选择一个栈,将牌堆顶上的卡牌放入栈的顶部。如果这么操作后,这个栈最上方的两张牌有相同的图案,则会自动将这两张牌消去。

• 选择两个不同的栈,如果这两个栈栈底的卡牌有相同的图案,则可以将这两张牌消去,原来在栈底上方的卡牌会成为新的栈底。如果不同,则什么也不会做。

这个游戏一共有 $T$ 关,小 $E$ 一直无法通关。请你帮小 $E$ 设计一下游戏方案,即对于游戏的每一关,给出相应的操作序列使得小 $E$ 可以把所有的卡牌消去。

【输入格式】

第一行包含一个正整数 $T$,表示数据组数。

接下来一共 $T$ 组数据,在每组数据中:

第一行包含三个正整数 $n, m, k$,分别表示栈的个数、卡牌的个数、卡牌上图案的种类。

第二行包含 $m$ 个正整数,分别表示 $a_1, a_2, · · · , a_m$,分别从上到下表示牌堆中卡牌的图案。

输入数据保证有解。

【输出格式】

对于每一组数据,输出若干行。

其中第一行包含一个正整数 $op$,表示操作的次数。你需要保证 $m\ ≤\ op\ ≤\ 2\ ×\ m$。

接下来 $op$ 行,每行包含两个或三个正整数,整数之间用一个空格隔开。

若为两个整数 $1$ $s$,则进行一次第一个操作并选择栈 $s$。

若为三个整数 $2$ $s_1$ $s_2$,则进行一次第二个操作并选择栈 $s_1$ 和 $s_2$。

你需要保证 $1\ ≤\ s,\ s_1,\ s_2\ ≤\ n,且\ s_1\ ≠\ \ s_2$。

【样例1输入】

1
2 4 2
1 2 1 2

【样例1输出】

5
1 1
1 1
1 2
2 1 2
1 1

【样例1解释】

【样例2输入输出】

点击下载样例2 

【数据规模与约定】