The Bovine Shuffle\bold T\bold h\bold e\ \bold B\bold o\bold v\bold i\bold n\bold e\ \bold S\bold h\bold u\bold f\bold f\bold l\bold e The Bovine Shuffle
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
翻译(非机翻 机翻也翻不出这么有才的题解 )
题目描述
FJ\bold F\bold JFJ坚信快乐的牛可以产出更多的牛奶,因此FJ\bold F\bold JFJ在牛棚里安装了一个巨大的迪斯科球并且打算让奶牛们学会跳舞。
FJ\bold F\bold JFJ在许多出名的奶牛舞中选择了一种叫做 Shuffle Bovine Shuffle 的舞蹈。这种舞蹈由 FJ\bold F\bold JFJ的NNN头奶牛组成。NNN头奶牛以一种顺序排成一行,接着表演数次 Shuffle。每次的 Shuffle 会将奶牛重新排列。FJ\bold F\bold JFJ为了让奶牛们更加快乐,让奶牛们更容易找到重新排列后的位置,他标记了 NNN 头奶牛的位置。在最开始,所有奶牛排成一排,第一头奶牛会在位置 111 上,第二只在 222上,以此类推。
我们用NNN个正整数a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1 ,a2 ,a3 ,...,an 来描述每次的Shuffle。aia_iai 说明了在位置iii上的奶牛在经过这回合的Shuffle,会跑到位置aia_iai 上。令FJ\bold F\bold JFJ倍感非洲的是,即使iii与jjj不同,aia_iai 也有可能会等于aja_jaj !所以有可能在一次Shuffle后,有多头奶牛会跑到同一位置上,在这之后这群奶牛也会一同行动。
作为一名资深的坑牛砖家养牛大户,FJ\bold F\bold JFJ猛然发现,无论经过多少次的Shuffle,一直都有kkk个位置上有奶牛,FJ\bold F\bold JFJ现在要你在一秒之内算出kkk的值,否则就赏你1018mod1010^{18}\bold m\bold o\bold d 101018mod10大板!
输入格式
第一行包含一个整数 NNN
第二行包含NNN个整数,描述题目中的a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1 ,a2 ,a3 ,...,an
输出格式
一个整数,代表kkk
输入输出样例
输入#1
输出#2
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
思路
这道题其实要求出所有环的长度之和。
至于为什么,我们把牛的移动方向看做连箭头,那么就变成了一个有向图。
那么一个环里面的牛就会不停的交换位置,不会重叠。但是如果有某个点指向了环的某一个地方,这个点的牛就会和环里面的牛重叠。
所以我们只要找出不在环里面的点,然后统计出所有环的长度之和就可以了。
AC代码
欢迎加入团队