CSES 3398 - Permutation Rounds
1.0s 512M有一個已排序的陣列 \([1,2,\dots,n]\) 與一個排列 \(p_1,p_2,\dots,p_n\)。每一輪所有元素都依照這個排列移動:位於位置 \(i\) 的元素移動到位置 \(p_i\)。
請問經過多少輪之後,陣列第一次再度變成已排序的狀態?
輸入格式
第一行有一個整數 \(n\)。
下一行包含 \(n\) 個整數 \(p_1,p_2,\dots,p_n\)。
輸出格式
輸出輪數模 \(10^9+7\) 的結果。
範例輸入 1
8
5 3 2 6 4 1 8 7
範例輸出 1
4
說明:每一輪之後陣列的變化如下:
- 第 1 輪:\([6,3,2,5,1,4,8,7]\)
- 第 2 輪:\([4,2,3,1,6,5,7,8]\)
- 第 3 輪:\([5,3,2,6,4,1,8,7]\)
- 第 4 輪:\([1,2,3,4,5,6,7,8]\)
限制
- \(1 \le n \le 2 \cdot 10^5\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入