#P16884. [GKS 2022 #D] Suspects and Witnesses

[GKS 2022 #D] Suspects and Witnesses

题目描述

Ada 为她的生日派对烤了一些饼干,她邀请了 NN 位客人,编号为 11NN。当所有客人都到达,派对即将开始时,可怕的事情发生了——有人偷了饼干!

Ada 戴上侦探帽,开始询问她的客人。她收集了 MM 条证人证言,每条形式为:客人 xx:“客人 yy 没有偷饼干。”

Ada 知道,如果一位客人是无辜的(没有偷饼干),那么他所说的所有证言都必须是真实的。注意,Ada 不知道偷饼干者所说的任何证言是否正确。

最后,Ada 从线人那里得知,偷饼干者的人数最多为 KK。根据这些信息,你能帮助 Ada 找出可以证明是无辜的客人数量吗?

注意,可能实际上没有客人偷饼干,只是 Ada 忘记了自己烤了多少饼干。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含三个整数 NNMMKK:分别表示客人的数量、证人证言的数量以及偷饼干者的最大可能人数。

接下来的 MM 行描述每条证人证言。第 ii 行包含两个整数 AiA_iBiB_i,表示证人证言:客人 AiA_i 说:“客人 BiB_i 没有偷饼干。”

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是可以证明是无辜的客人数量。

2
3 2 1
1 2
2 3
3 3 1
1 2
2 3
3 1
Case #1: 2
Case #2: 3

2
3 2 2
1 2
2 3
3 3 2
1 2
2 3
3 2
Case #1: 1
Case #2: 2

提示

在样例 #1 中,有 N=3N = 3 位客人,M=2M = 2 条证人证言,最多有 K=1K = 1 个偷饼干者。

证人证言如下:

  • 客人 11:客人 22 没有偷饼干。
  • 客人 22:客人 33 没有偷饼干。

现在,我们考虑每位客人是否是偷饼干者的所有可能情况。

情景 客人 11 客人 22 客人 33 是否可能?
情景 #1 无辜 无辜 无辜
情景 #2 偷窃者
情景 #3 无辜 偷窃者
情景 #4 无辜 偷窃者

以上是满足最多有 K=1K = 1 个偷饼干者的所有情景。情景 #3 不可能,因为客人 11 是无辜的,且他声称客人 22 是无辜的,但客人 22 实际上是偷窃者。情景 #4 同理。

对于剩下的情景,我们发现客人 22 和客人 33 始终是无辜的,因此答案为 22

限制条件

1T1001 \le T \le 100

2N1052 \le N \le 10^5

1M1051 \le M \le 10^5

对于所有 ii1AiN1 \le A_i \le N

对于所有 ii1BiN1 \le B_i \le N

对于所有 iiAiBiA_i \ne B_i

对于所有 iji \ne j(Ai,Bi)(Aj,Bj)(A_i, B_i) \ne (A_j, B_j)

测试集 1

K=1K = 1

测试集 2

1K201 \le K \le 20

翻译由 DeepSeek V4 Pro 完成