P16884 [GKS 2022 #D] Suspects and Witnesses
题目描述
Ada 为她的生日派对烤了一些饼干,她邀请了 $N$ 位客人,编号为 $1$ 到 $N$。当所有客人都到达,派对即将开始时,可怕的事情发生了——有人偷了饼干!
Ada 戴上侦探帽,开始询问她的客人。她收集了 $M$ 条证人证言,每条形式为:客人 $x$:“客人 $y$ 没有偷饼干。”
Ada 知道,如果一位客人是无辜的(没有偷饼干),那么他所说的所有证言都必须是真实的。注意,Ada 不知道偷饼干者所说的任何证言是否正确。
最后,Ada 从线人那里得知,偷饼干者的人数最多为 $K$。根据这些信息,你能帮助 Ada 找出可以证明是无辜的客人数量吗?
注意,可能实际上没有客人偷饼干,只是 Ada 忘记了自己烤了多少饼干。
输入格式
输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。
每个测试用例的第一行包含三个整数 $N$、$M$ 和 $K$:分别表示客人的数量、证人证言的数量以及偷饼干者的最大可能人数。
接下来的 $M$ 行描述每条证人证言。第 $i$ 行包含两个整数 $A_i$ 和 $B_i$,表示证人证言:客人 $A_i$ 说:“客人 $B_i$ 没有偷饼干。”
输出格式
对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是可以证明是无辜的客人数量。
说明/提示
在样例 #1 中,有 $N = 3$ 位客人,$M = 2$ 条证人证言,最多有 $K = 1$ 个偷饼干者。
证人证言如下:
- 客人 $1$:客人 $2$ 没有偷饼干。
- 客人 $2$:客人 $3$ 没有偷饼干。
现在,我们考虑每位客人是否是偷饼干者的所有可能情况。
| 情景 | 客人 $1$ | 客人 $2$ | 客人 $3$ | 是否可能? |
|:-:|:-:|:-:|:-:|:-:|
| 情景 #1 | 无辜 | 无辜 | 无辜 | 是 |
| 情景 #2 | 偷窃者 | 无辜 | 无辜 | 是 |
| 情景 #3 | 无辜 | 偷窃者 | 无辜 | 否 |
| 情景 #4 | 无辜 | 无辜 | 偷窃者 | 否 |
以上是满足最多有 $K = 1$ 个偷饼干者的所有情景。情景 #3 不可能,因为客人 $1$ 是无辜的,且他声称客人 $2$ 是无辜的,但客人 $2$ 实际上是偷窃者。情景 #4 同理。
对于剩下的情景,我们发现客人 $2$ 和客人 $3$ 始终是无辜的,因此答案为 $2$。
### 限制条件
$1 \le T \le 100$。
$2 \le N \le 10^5$。
$1 \le M \le 10^5$。
对于所有 $i$,$1 \le A_i \le N$。
对于所有 $i$,$1 \le B_i \le N$。
对于所有 $i$,$A_i \ne B_i$。
对于所有 $i \ne j$,$(A_i, B_i) \ne (A_j, B_j)$。
**测试集 1**
$K = 1$。
**测试集 2**
$1 \le K \le 20$。
翻译由 DeepSeek V4 Pro 完成