SP1674 EXPLOSN - The Explosion
题目描述
2003 年 12 月 6 日,比特国的清晨如同往常一样平静。一些人照常去工作、上学,还有的去商店采购食物。司机们一如既往地堵在路上,喝着咖啡,看着早报。然而,这一天的平静被一声巨大的爆炸打破了。「有人炸了巴焦西亚大使馆!」有人喊道。所有人都慌乱地开始逃跑。
比特国的警察反应迅速,爆炸发生后几秒钟内就赶到了现场,并拘留了在大使馆附近的所有人。这些人中有犯罪组织者,也有可能只是碰巧经过的目击者。每个人在作证时都指认了一个他们认为的罪犯。已知的情况是,如果一个人不是罪犯,他就总是说实话,因为他没有撒谎的理由。而罪犯为了混淆视听,可能会指认任何人,包括自己。
面对这样的局面,警方遇到了难题。他们需要逮捕几个潜在罪犯,但难以从现有证词中确定具体嫌疑人。有许多不同的罪犯群体都可能符合所有证词条件。警方希望在尽量不误抓无辜者的情况下,选择人数最少的一组潜在罪犯。
你的任务是编写一个程序,确定每组证词下可能的最小罪犯群体的人数,不与任何证词相矛盾。
输入格式
第一行是一个整数 $T$,表示测试用例的数量($1 \le T \le 10$)。
每个测试用例的第一行有一个整数 $N$($2 \le N \le 100000$),表示被拘留的总人数(这些人被编号为 1 到 $N$)。接下来的 $N$ 行中,第 $i$ 行包含一个整数 $P_i$($1 \le P_i \le N$),表示第 $i$ 个人指认的罪犯编号。
输出格式
输出包含 $T$ 行,每行一个整数,表示每个测试用例中满足所有证词的最小潜在罪犯群体的人数。
**本翻译由 AI 自动生成**