loj#P6887. 「THUPC 2023」喵了个喵 III

「THUPC 2023」喵了个喵 III

题目背景

小 E 玩腻了《喵了个喵》,于是决定换一款消除游戏来玩。然而小 E 发现市面上的消除游戏规则都差不多,比如这个游戏,它的规则和《喵了个喵》只有一个字不相同。虽然说,改了一个字的游戏就是新游戏,但确是缺了点意思。

题目描述

这个游戏有一个牌堆和 nn 个栈,任务是要通过游戏规则将所有的卡牌消去。开始时牌堆中有 mm 张卡牌,从上到下的图案分别是 a1,a2,,ama_1,a_2,\cdots, a_m。所有的卡牌一共有 kk 种图案,从 11kk 编号。牌堆中每一种图案的卡牌都有偶数张。开始时所有的栈都是空的。这个游戏有两种操作:

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

  • 选择两个不同的栈,如果这两个栈栈的卡牌有相同的图案,则可以将这两张牌消去。如果不同,则什么也不会做。

经过多次观察小 E 发现总是有 n=2n=2k=m/2k=m/2,即只有两个栈且每一种图案的卡牌都恰好有 22 张。虽然如此,小 E 还是一直无法通关。请你帮小 E 设计一下游戏方案,即给出相应的操作序列使得小 E 可以把所有的卡牌消去。

输入格式

第一行一个正整数 mm

第二行 mm 个正整数,分别表示 a1,a2,,ama_1,a_2,\cdots, a_m

保证 1m/21\sim m/2 在序列中各出现两次。

输出格式

如果无解,输出一行 No solution.

如果有解,第一行输出 Cleared.。第二行输出一个正整数 opop,表示操作的次数。你需要保证 mop2mm\le op\le 2m

接下来一行一个长度为 opop 的字符串,每一位是一个不超过 22 的非负整数,按顺序表示进行的操作。若为 1122,则表示进行一次第一个操作并选择栈 11 或栈 22。若为 00,则表示进行一次第二个操作。由于只有两个栈,所以你不需要输出额外的信息来说明你选择了哪些栈。

4
1 2 1 2

Cleared.
5
12202

下图是初始状态。

 ~

下图是前两次操作之后的结果。

 ~

                      ~~~~~~~~~~~~~~~~~~~~~~

下图是第三次和第四次操作之后的结果。

 ~

                      ~~~~~~~~~~~~~~~~~~~~~~

下图是第五次操作之后的结果。

                      ~~~~~~~~~~~~~~~~~~~~~~

数据范围与提示

保证 2m15002\le m \le 1500 且为偶数。

保证 1aim/21\le a_i \le m/2 且每一种数在序列中出现恰好两次。

评分方式

你的输出的第一行需要与标准答案一致。

若有解,且在按顺序进行所有操作后,牌堆为空且所有的栈均为空,则认为你的答案正确。

后记

以下部分与本题内容无关。

说到底,那个嫌《喵了个喵 II》的题面太长的人其实是小 E 自己。它本来的题面中,题目背景和题目描述是这样的:

【题目背景】

小 E 玩腻了《喵了个喵》,于是决定换一款消除游戏来玩。然而小 E 发现市面上的消除游戏规则都差不多,比如这个游戏,它的规则和《喵了个喵》只有略微不相同。虽然说,只要改一个字就是新游戏,但确是缺了点意思。

【题目描述】

这个游戏有一个牌堆和 nn 个可以从栈底删除元素的栈,任务是要通过游戏规则将所有的卡牌消去。开始时牌堆中有 mm 张卡牌,从上到下的图案分别是 a1,a2,,ama_1,a_2,\cdots, a_m。所有的卡牌一共有 kk 种图案,从 11kk 编号。牌堆中每一种图案的卡牌都有偶数张。开始时所有的栈都是空的。这个游戏有两种操作:

  • 选择一个栈,将牌堆顶上的卡牌放入栈的顶部。

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

经过多次观察小 E 发现总是有 n=2n=2k=m/4k=m/4,并且每一种图案的卡牌都恰好有 44 张。虽然如此,小 E 还是一直无法通关。请你帮小 E 设计一下游戏方案,即给出相应的操作序列使得小 E 可以把所有的卡牌消去。

题目使用协议

来自 THUPC2023(2023年清华大学学生程序设计竞赛暨高校邀请赛)。

以下『本仓库』皆指 THUPC2023 官方仓库(https://github.com/THUSAAC/THUPC2023

  1. 任何单位或个人都可以免费使用或转载本仓库的题目;

  2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限;

  3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法;否则,请附上本仓库的 github 地址。