#P4089. 奶牛洗牌(The Bovine Shuffle S)
0
奶牛洗牌(The Bovine Shuffle S)
奶牛洗牌(The Bovine Shuffle S)
题目描述
Farmer John 坚信快乐的奶牛能产更多的奶,因此他在谷仓里安装了一个巨大的迪斯科球,并计划教他的奶牛跳舞!
在查阅了流行的奶牛舞蹈后,Farmer John 决定教他的奶牛“Bovine Shuffle”。Bovine Shuffle 包括他的 头奶牛()以某种顺序排成一行,然后进行连续的“洗牌”,每次洗牌可能会重新排列奶牛的顺序。为了让奶牛更容易找到自己的位置,Farmer John 为他的奶牛队伍标记了位置 ,因此队伍中的第一头奶牛位于位置 1,第二头位于位置 2,依此类推,直到位置 。
一次洗牌由 个数字 描述,其中位于位置 的奶牛在洗牌期间移动到位置 (因此,每个 都在 范围内)。每头奶牛在洗牌期间都会移动到它的新位置。不幸的是,所有的 不一定互不相同,因此多只奶牛可能会在洗牌期间尝试移动到同一位置,之后它们将在所有剩余的洗牌中一起移动。
Farmer John 注意到,无论进行多少次洗牌,他的队伍中某些位置始终会有奶牛。请帮助他计算这样的位置数量。
输入格式
输入的第一行包含 ,表示奶牛的数量。第二行包含 个整数 。
输出格式
请输出无论进行多少次洗牌,始终会有奶牛的位置数量。
样例输入 #1
4
3 2 1 3
样例输出 #1
3
数据范围
请使用高效率算法及 64 位整数(long long)避免溢出。
知识点与难度
本题涉及的知识点从属于 CSP-S,难度(CF Rating):1300。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 25 | 2~8 | 小规模与边界测试数据 |
| 2 | 30 | 9~16 | 中等规模测试数据 |
| 3 | 35 | 17~25 | 满规模极限测试数据 |
出处:原题链接