算法马拉松石头剪刀布威力加强版

题目传送门

考虑之间构成的循环,对于上每个数处理出其在上的循环的信息。

处理出的循环是级别的。

记录处理出的循环。如:

上的循环(按~的顺序):

1 5 2 6 3 7

维护关于这个循环的前缀和,方便统计答案。

此时只需要求出上的数的贡献即可。

对于上的每一个数,可以求出关于这个数的循环总共经历的几轮。

然后用前缀和统计贡献即可,对于循环经过若干轮还有的另外统计。

Code