QOJ.ac

QOJ

时间限制: 1.0 s 内存限制: 32 MB 总分: 120

#16359. 黑手党

统计

黑手党(Mafia)是一款深受信息学奥林匹克竞赛高中选手喜爱的社交游戏,他们通常在夏令营、冬令营和国家级比赛的深夜里,一边喝着各种水果汽水一边玩这个游戏。这个游戏不在于输赢,而在于重在参与,就像比赛一样。

为了解决这个任务,你不需要知道黑手党的具体规则:你只需要知道,部分玩家是“暴徒”(mobsters),其余玩家是“平民”(civilians)。暴徒知道每个人的身份,但平民不知道。平民在游戏过程中试图找出谁是暴徒。

在当前轮的游戏中,在目前幸存的 $N$ 名玩家中,每个人都恰好指控了另一名玩家,声称对方是暴徒。平民只是在瞎猜,而暴徒指控的都是平民,以此假装自己一无所知。

在不知道谁是暴徒,但知道谁指控了谁的情况下,请确定这些玩家中最多可能有多少个暴徒

输入格式

输入的第一行包含一个整数 $N$($2 \le N \le 500\,000$),表示玩家的人数。玩家用 $1$ 到 $N$ 的整数进行编号。

接下来的 $N$ 行中,第 $K$ 行包含玩家 $K$ 所指控的玩家编号。(没有玩家会指控自己。)

输出格式

输出的第一行也是唯一的一行,应包含最多可能的暴徒人数。

子任务

  • 在价值 40 分的测试数据中,满足 $N < 15$。
  • 在价值 80 分的测试数据中,满足 $N \le 2000$。

样例

输入样例 1

3
2
1
1

输出样例 1

2

输入样例 2

3
2
3
1

输出样例 2

1

输入样例 3

7
3
3
4
5
6
4
4

输出样例 3

4

说明

样例 1 说明:暴徒可以是玩家 2 和玩家 3。

样例 2 说明:暴徒可以是任意一名玩家,但不能有更多暴徒,因为那意味着他们中的一个指控了另一个。

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.