DTOJ3026 geronimo
DTOJ3026 geronimo
- 題目
- 題目描述
- 輸入格式
- 輸出格式
- 樣例
- 樣例輸入
- 樣例輸出
- 數(shù)據(jù)范圍與提示
- 題解
題目
題目描述
“Geronimo~”
時間還很多,讓我們慢慢來。
不如聽首開心的歌再看題?…算了,直接看題吧
給定一個整數(shù)nnn,以及一個nnn階的排列p1,p2,...,pnp_1,p_2,...,p_np1?,p2?,...,pn?
我們定義重組過程如下:如果當(dāng)前的排列是a1,a2,...,ana_1,a_2,...,a_na1?,a2?,...,an?,經(jīng)過一次重組,就會變成pa1,pa2,...,panp_{a_1},p_{a_2},...,p_{a_n}pa1??,pa2??,...,pan??
問一個排列至少要經(jīng)過多少次重組才會恢復(fù)成重組前的狀態(tài)
由于答案可能很大,輸出其對一個給定的正整數(shù)qqq取模的值即可
輸入格式
第一行兩個正整數(shù)n,qn,qn,q
第二行一共nnn個整數(shù),依次表示p1,p2,...,pnp_1,p_2,...,p_np1?,p2?,...,pn?
同一行相鄰的數(shù)間用一個空格隔開
輸出格式
一行一個整數(shù),表示答案對qqq取模的值
樣例
樣例輸入
7 1000000207 2 6 5 1 3 4 7樣例輸出
4數(shù)據(jù)范圍與提示
對于全部的數(shù)據(jù),q?2×109q\leqslant 2\times 10^9q?2×109
對于10%10\%10%的數(shù)據(jù),q=1q=1q=1
對于另外20%20\%20%的數(shù)據(jù),n?9n\leqslant 9n?9
對于另外40%40\%40%的數(shù)據(jù),n?103n\leqslant 10^3n?103
對于剩下30%30\%30%的數(shù)據(jù),n?5×105n\leqslant 5\times 10^5n?5×105
題解
先求出每一個點(diǎn)要循環(huán)幾次才能回到原位,然后直接去一個LCM就好了
不能用傳統(tǒng)的GCD,因?yàn)樾枰∧?#xff01;必須用唯一分解定理
附上代碼:
總結(jié)
以上是生活随笔為你收集整理的DTOJ3026 geronimo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows7下chm文件打不开
- 下一篇: Linux配置http代理(原理)