QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#8679. 傾斜方塊

Statistics

你在閣樓裡一箱舊玩具中找到了一個奇怪的益智玩具。它是一塊由 $h \times w$ 個正方形格子組成的長方形棋盤。一些格子上放有彩色方塊,如圖 F.1 所示。

problem_8679_141bfaa0ba0c1196198d6deee1100655.png

圖 F.1:彩色方塊對應範例輸入 1 中的初始排列。

你還不確定這個玩具的確切目標,但已開始研究重新排列方塊的可能方法。你可以將棋盤向四個主要方向之一傾斜來改變排列:向左、向右、朝向自己或遠離自己。傾斜會使所有方塊向相應方向滑動,直到被邊界或另一個方塊擋住。給定初始排列與最終排列,判斷是否存在一連串傾斜操作,能將前者變成後者。圖 F.2 展示範例輸入 1 的玩具傾斜過程。

problem_8679_eb20e1509cd290b03249b30fb584f1df.png

圖 F.2:範例輸入 1 的解法。

輸入格式

輸入第一行包含兩個整數 $h$ 和 $w$($1 \le h,w \le 500$),表示棋盤的高度與寬度。接著有 $h$ 行,從最上列到最下列給出初始排列。每行包含一個長度為 $w$ 的字串,由左至右描述該列的格子。若格子為空,對應字元為句點(.);若有方塊,則以小寫字母(a-z)表示方塊顏色。不同字母表示不同顏色,同色方塊無法區分。

初始排列後有一個空行,接著是最終排列的描述,共 $h$ 行,格式與初始排列相同。

輸出格式

若存在一連串傾斜操作能將初始排列變成最終排列,輸出 yes;否則輸出 no。

範例

輸入格式 1

4 4
.r..
rgyb
.b..
.yr.

yrbr
..yr
...g
...b

輸出格式 1

yes

輸入格式 2

1 7
....x..

..x....

輸出格式 2

no

輸入格式 3

4 3
yr.
..b
ry.
b..

...
..b
.ry
byb

輸出格式 3

no

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.