P9622 [ICPC 2020 Nanjing R] Ah, It's Yesterday Once More

题目描述

2018 年,由南京航空航天大学(NUAA)主办的 $\textit{国际大学生程序设计竞赛}$(ICPC)区域赛在南京再次举行,这是在经过几年的间隔后再次举办。比赛中有超过 $400$ 支队伍参加,清华大学的队伍 $\textit{Power of Two}$ 获得了冠军。 两年过去了,在 2018 年和 2019 年取得巨大成功后,NUAA 继续在 2020 年举办 ICPC 南京区域赛。尽管由于疫情我们这次无法在南京聚集,但我们仍应感谢所有工作人员和志愿者为这次比赛所做的辛勤工作。感谢你们为这次比赛做出的巨大贡献! 在 2018 年的比赛中,问题 K,$\textit{袋鼠拼图}$,要求参赛者为游戏构建一个操作序列。让我们先回顾一下该问题的内容: > 这个拼图是一个有 $n$ 行 $m$ 列的网格($1 \le n, m \le 20$),其中有一些(至少 $2$ 只)袋鼠站在拼图中。玩家的目标是控制它们聚集在一起。某些单元格中有墙,袋鼠不能进入有墙的单元格。其他单元格是空的。袋鼠可以从一个空单元格移动到相邻的空单元格,方向有四个:上、下、左、右。保证袋鼠可以通过相邻的空单元格从任何空单元格到达任何其他空单元格。还保证拼图中没有循环——也就是说,不可能有袋鼠从一个空单元格出发,经过几个不同的空单元格,然后回到原来的单元格。 > 每个空单元格开始时恰好有一只袋鼠,玩家可以通过按键盘上的 U、D、L、R 按钮来控制袋鼠。袋鼠将根据您按下的按钮同时移动。例如,如果您按下按钮 R,袋鼠会向右移动一个单元格,如果存在且为空,否则将保持不动。 > 在这个问题中,参赛者需要构建一个最多包含 $5 \times 10^4$ 步的操作序列,只能由 U、D、L、R 组成。如果按顺序操作这些步骤后,仍然有两只袋鼠站在不同的单元格中,参赛者将得到一个 `Wrong Answer` 判定。 我们的亲爱朋友 Kotori 也参加了比赛,并提交了一段随机算法的代码。令她惊讶的是,这个简单的解决方案被判定为正确答案。我们现在展示她的解决方案如下: ```cpp #include using namespace std; string s = "UDLR"; int main() { srand(time(NULL)); for (int i = 1; i

输入格式

本题没有输入。你需要自己解决!

输出格式

您应首先输出一行,包含两个整数 $n$ 和 $m$($1 \le n, m \le 20$),用空格分隔,表示您答案中的地图的行数和列数。 然后您应输出 $n$ 行,其中第 $i$ 行包含一个长度为 $m$ 的二进制字符串 $s_{i,1}s_{i,2}\cdots s_{i,m}$($s_{i,j} \in \{\text{`0'}, \text{`1'}\}$)。如果 $s_{i,j} = \text{`1'}`,则第 $i$ 行第 $j$ 列的单元格是空的;否则,该对应单元格包含墙壁,无法进入。 再次注意,您的答案只需达到至少 $25\%$ 的成功破解率。不是很难,对吧?

说明/提示

### 注意 我们提供的示例输出(显然)是错误的。它仅用于向您展示输出格式。这是一个 $3 \times 4$ 的地图,开始时有 $4$ 墙,因此在空单元格中将有 $8$ 只袋鼠。 题面翻译由 ChatGPT-4o 提供。