题目描述
输入描述:
输出描述:
示例1
输入
5
1 2 3 4 5
输出
1
示例2
输入
6
2 3 4 5 6 1
输出
6
题目大意
给定一串数列 p [ ] p[] p[],有变换:
f o r ( i n t i = 0 ; i < n ; i + + ) for(int\,i=0;i<n;i++) for(inti=0;i<n;i++)
b [ i ] = a [ i ] \qquad b[i]=a[i] b[i]=a[i]
f o r ( i n t i = 0 ; i < n ; i + + ) for(int\,i=0;i<n;i++) for(inti=0;i<n;i++)
a [ i ] = b [ p [ i ] ] \qquad a[i]=b[p[i]] a[i]=b[p[i]]
求 1 ∼ n 1\sim n 1∼n的序列的所有排列中,有多少序列可以通过 p p p的上述变换而变成 1 ∼ n 1\sim n 1∼n的有序数列。
分析
置换群
分析这个变换的过程,所有的 a [ i ] a[i] a[i]