QOJ.ac

QOJ

実行時間制限: 8.0 s メモリ制限: 1024 MB 満点: 100 難易度: [表示] ハック可能 ✓

#18001. 白夜

統計

Little Cyan Fish 手中有一个 $n$ 行 $m$ 列的矩阵 $A$。矩阵中的每个元素可以是青色(Cyan)或白色(White)。我们用字符 C 表示青色,用字符 W 表示白色。为方便起见,Little Cyan Fish 将矩阵中第 $i$ 行第 $j$ 列($1 \le i \le n, 1 \le j \le m$)的元素记为 $A_{i,j}$。

Little Cyan Fish 可以执行任意次数以下操作: 选择一对垂直相邻或水平相邻的单元格 $A_{i,j}$ 和 $A_{k,l}$。即 $|i - k| + |j - l| = 1$。 交换 $A_{i,j}$ 和 $A_{k,l}$。

Little Cyan Fish 想要将矩阵 $A$ 转换为另一个给定的矩阵 $B$。当然,Little Cyan Fish 保证矩阵 $A$ 中青色元素的数量与最终目标矩阵 $B$ 中青色元素的数量相等,因此一定存在满足 Little Cyan Fish 要求的操作方案。

你需要帮助 Little Cyan Fish 计算完成其要求所需的最少操作次数。

输入格式

输入包含多组测试数据。第一行包含一个整数 $T$ ($1 \le T$),表示测试数据的组数。

对于每组测试数据,第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 10^5, 1 \le m \le 6$),分别表示矩阵的行数和列数。

接下来 $n$ 行,每行包含一个长度为 $m$ 的字符串(仅包含字符 CW),表示矩阵 $A$ 的每一行。

接下来 $n$ 行,每行包含一个长度为 $m$ 的字符串(仅包含字符 CW),表示矩阵 $B$ 的每一行。保证矩阵 $A$ 和矩阵 $B$ 中字符 C 的数量相同(自然地,字符 W 的数量也会相同)。

保证所有测试数据的 $n$ 之和不超过 $10^5$。

输出格式

对于每组测试数据,输出一行一个整数,表示 Little Cyan Fish 将矩阵 $A$ 转换为矩阵 $B$ 所需的最少操作次数。

样例

样例输入 1

2
2 2
CW
WC
WC
CW
5 3
WWC
WCW
CWC
CCC
CCC
CCC
CCC
CCC
CWW
WWW

样例输出 1

2
16

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.