QOJ.ac

QOJ

実行時間制限: 10 s - 17 s メモリ制限: 1024 MB 満点: 27

#5980. 河流流量

統計

你居住的城市坐落在壮观的二进制河(Binary river)岸边。河水来自山上的几条支流。不幸的是,住在山上的农民需要利用支流中的部分水来灌溉农作物。

很久以前,城市与农民达成了一项协议,允许他们在保持河流流动的同时进行耕作:每位农民被允许在正好一半的时间里使用支流的水。农民们交替地进行灌溉:一天引水灌溉,一天让水流入河流。结果却是一场灾难!由于农民们的用水行为是同步的,每个人要么同时引水,要么同时不引水,导致河流每隔一天就会干涸,而第二天又会淹没城市。

为了解决这个问题,城市重新与农民协商,要求每位农民选择一个 $1$ 到 $D$ 之间的整数次幂(毕竟这是二进制河)(包含 $1$ 和 $D$),并在每经过该天数后切换一次用水状态(开始或停止引水)。(并非 $1$ 到 $D$ 之间的每个 $2$ 的幂都一定会被选中,且多位农民可能选择了相同的整数。$1$ 也被视为 $2$ 的幂。)这样做的初衷是使整体用水更加均匀,从而减少干旱和洪涝的频率。

这一切发生在很久以前,你和其他市民最近开始怀疑农民们并没有遵守协议。(你甚至不确定现在有多少位农民!)然而,你手中仅有的数据是 $N$ 天的河流流量历史记录。你能判断农民们是否诚实吗?

每条支流的流量为 $1$,主河道的流量是所有未被用于灌溉的支流流量之和。(在查看记录之前,你不知道总共有多少条支流。)每条支流最多被一位农民引水,但也可能存在没有任何农民引水的支流。注意,农民们开始引水循环的时间远早于城市开始记录流量的时间,但不能保证他们都在同一天开始。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个空格分隔的整数 $N$ 和 $D$。下一行包含 $N$ 个空格分隔的整数,其中第 $i$ 个整数 $d_i$ 表示第 $i$ 天的河流流量。

输出格式

对于每个用例,输出一行 "Case #x: $M$",其中 $x$ 是测试用例编号(从 $1$ 开始),$M$ 是根据所述模型,在与观测到的河流流量一致的前提下,可能引水的农民的最少数量。

如果你确定至少有一位农民在活动,但提供的输入无法用遵守规则的农民来解释,则输出 CHEATERS! 而不是数字。

数据范围

内存限制:1 GB。

$1 \le T \le 50$。

$D$ 将是 $2$ 的幂。

$1 \le D \le \lfloor N / 2 \rfloor$。

小数据(10 分)

时间限制:10 秒。

$1 \le N \le 50$。

$0 \le d_i \le 5$。

大数据(17 分)

时间限制:20 秒。

$1 \le N \le 5000$。

$0 \le d_i \le 1000$。

样例

样例输入 1

4
5 2
2 2 2 2 2
6 2
1 1 1 0 0 0
8 4
2 1 1 0 0 1 1 2
8 4
0 1 1 3 1 2 2 2

样例输出 1

Case #1: 0
Case #2: CHEATERS!
Case #3: 2
Case #4: 3

说明

Case #1 与两条没有农民引水的支流情况一致。

Case #2 可能是一位农民每 4 天引水一次。然而,本例中 $D$ 为 2,因此该农民违反了协议。

Case #3 可能是有两位农民,每人的引水周期均为 4 天。

Case #4 可能是有三位农民,引水周期分别为 1、2 和 4 天。

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.