AT_ahc059_a.[AHC059A] Stack to Match Pairs

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个 N×NN \times N 的网格。左上角的格子的坐标为 (0,0)(0,0),从这里向下移动 ii 格、向右移动 jj 格后到达的格子的坐标为 (i,j)(i,j)。

NN 是偶数,对于每一个从 00 到 N22−1\frac{N^2}{2}-1 的数字,恰好有两张写有该数字的卡牌。初始时,每个格子上正好放置了一张卡牌。

你从位置 (0,0)(0,0) 出发,手中持有一个空牌堆,然后重复以下操作:

  1. 向上、下、左或右的相邻格子移动。你不能走出 N×NN \times N 的网格范围。
  2. 如果你当前位置上有卡牌,则可以将该卡牌放到你牌堆的顶部。如果这之后你牌堆顶端的两张卡牌数字相同,这两张卡牌会被从牌堆中移除。
  3. 如果你当前位置上没有卡牌,你可以将牌堆顶端的卡牌放置在当前位置。若你的牌堆为空或当前位置已经有卡牌,则不能执行此操作。

最多可以执行 2N32N^3 次操作。你的目标是让网格和你的牌堆中所有的卡牌都被消除。请找出一个能够极小化“移动”次数的操作序列。注意,操作 2 和 3 的操作次数计入操作数限制,但并不影响评测分数。

输入格式

输入通过标准输入给出,格式如下:

NN a0,0a_{0,0} ⋯\cdots a0,N−1a_{0,N-1} ⋮\vdots aN−1,0a_{N-1,0} ⋯\cdots aN−1,N−1a_{N-1,N-1}

  • 所有测试用例均满足 N=20N = 20。
  • ai,ja_{i,j} 表示最初放置在格子 (i,j)(i,j) 上的卡牌上的数字,是满足 0≤ai,j≤N22−10 \leq a_{i,j} \leq \frac{N^2}{2} - 1 的整数。
  • 每个 ai,ja_{i,j} 出现恰好两次。

输出格式

每个回合 tt 的操作以单个字符 ctc_t 表示,含义如下:

  1. 操作 1(移动),用如下字符表示方向:向上:“U”、向下:“D”、向左:“L”、向右:“R”
  2. 操作 2(拿起卡牌):Z
  3. 操作 3(放下卡牌):X

设 TT 为总操作次数。请按如下格式输出到标准输出:

c0c_0

⋮\vdots

cT−1c_{T-1}

说明/提示

计分方式

设你的操作序列中移动次数为 KK,最终网格和牌堆中剩余卡牌数为 XX,得分计算如下:

  • 若 X=0X=0,得分为 N2+2N3−KN^2 + 2N^3 - K;
  • 若 X>0X>0,得分为 N2−XN^2 - X。

输入生成

初始的卡牌 ai,ja_{i,j} 是将所有 N2N^2 张卡随机打乱后依次放在 N×NN \times N 网格中的。

工具(输入生成器和可视化)

请注意,比赛期间禁止分享可视化结果或者讨论解法与思路。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页