QOJ.ac

QOJ

Time Limit: 5 s - 10 s Memory Limit: 1024 MB Total points: 25

#5936. 充电混乱

Statistics

农夫 Shota 遇到了一个问题。他刚搬进新建的农舍,但发现插座的配置无法满足他所有设备的需求。作为一名现代农夫,Shota 拥有许多智能手机和笔记本电脑,甚至还有一台供他最喜欢的奶牛 Wagyu 使用的平板电脑。他总共有 $N$ 台不同的设备。

由于这些设备规格各异且由不同公司制造,它们各自需要不同的电流才能充电。同样,屋里的每个插座也输出特定的电流。电流可以用一个长度为 $L$ 的由 0 和 1 组成的字符串来表示。

Shota 希望能同时为他的 $N$ 台设备充电。巧合的是,他的新房子里正好有 $N$ 个插座。为了配置插座输出的电流,总控制面板上有 $L$ 个开关。第 $i$ 个开关可以翻转所有插座输出电流的第 $i$ 位。例如,如果插座输出的电流为:

Outlet 0: 10
Outlet 1: 01
Outlet 2: 11

那么翻转第二个开关会将电流重新配置为:

Outlet 0: 11
Outlet 1: 00
Outlet 2: 10

如果 Shota 有一台需要电流 "11" 充电的智能手机、一台需要电流 "10" 充电的平板电脑,以及一台需要电流 "00" 充电的笔记本电脑,那么翻转第二个开关会让他非常满意!

Misaki 被 Shota 雇佣来帮助他解决这个问题。她测量了屋里插座输出的电流,并注意到它们各不相同。请判断 Shota 是否有可能同时为他所有的设备充电;如果可能,请计算出需要翻转的开关的最小数量,因为开关又大又重,Misaki 不想翻转超过必要的次数。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含三行。第一行包含两个空格分隔的整数 $N$ 和 $L$。第二行包含 $N$ 个空格分隔的长度为 $L$ 的字符串,表示插座的初始电流。第三行也包含 $N$ 个空格分隔的长度为 $L$ 的字符串,表示 Shota 的设备所需的电流。

输出格式

对于每个测试用例,输出一行 "Case #$x$: $y$",其中 $x$ 是用例编号(从 1 开始),$y$ 是 Shota 为给所有设备充电所需翻转的最小开关数量。如果不可能,则 $y$ 应为字符串 "NOT POSSIBLE"(不含引号)。请注意,我们的评测系统对大小写不敏感,但在其他方面要求严格:因此,虽然 "not possible" 会被判定为正确,但任何拼写错误都会被判定为错误。我们建议将字符串 NOT POSSIBLE 直接复制粘贴到你的代码中。

数据范围

内存限制:1 GB。

$1 \le T \le 100$。

初始时,没有两个插座输出相同的电流。

没有两个设备需要相同的电流。

小数据集(8 分)

时间限制:5 秒。

$1 \le N \le 10$。

$2 \le L \le 10$。

大数据集(17 分)

时间限制:10 秒。

$1 \le N \le 150$。

$10 \le L \le 40$。

样例

样例输入 1

3
3 2
01 11 10
11 00 10
2 3
101 111
010 001
2 2
01 10
10 01

样例输出 1

Case #1: 1
Case #2: NOT POSSIBLE
Case #3: 0

说明

在第一个样例中,Misaki 可以翻转第二个开关一次。插座输出的电流变为:

Outlet 0: 00
Outlet 1: 10
Outlet 2: 11

然后 Shota 可以使用插座 0 为设备 1 充电,使用插座 1 为设备 2 充电,使用插座 2 为设备 0 充电。这也是需要翻转的最少开关数量的解决方案。

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.