牛客 How to sort 置換群,排序相關

2021-09-20 15:23:55 字數 653 閱讀 9469

置換群

題目鏈結

**大佬

思路:首先肯定交換的肯定是閉環上的數。比如說 4 3 1 2 5。第乙個環是4–>2–>3–>1–>4,這幾個位置上的數,交換一下位置可以得到遞增的。環是以number–>pos[number]–>pos[pos[number]]…下去的。

比賽的時候爆wa了,說說賽中的想法。

賽中的時候想法就是肯定是用環中最小的數作為媒介去交換啊,記乙個環的元素有k個,最小的數為min,環的元素和為sum。

肯定是拿min去做n-1次交換啊,所以答案是(sum-min)+(k-1)*min;即用最小的元素去跟其他的k-1個交換產生的價值。

沒考慮到另外一種情況,舉個例子:1 400 200 300,這個陣列,環是400->300->200->400。那麼我們拿200去換嗎?肯定不是,顯然用1作為媒介交換是最合適的。

所以有了第二種情況(賽後看了下ac的**發現的思維誤區),即拿陣列中最小的元素作為媒介,去把當前環中的數交換成有序的。

記全部元素中最小的數是all_min產生的代價是min+sum+(k-1)*all_min。手推一下就ok的。

所以每次環增加的代價是這兩種情況取小的那種。(說實話這題很質量啊,很考驗思維。。哎還是我太菜了)

最後注意的是離散化一下陣列,因為題目中給定的不是完全的1~n的數字。

置換群的習題

題意 給定n,s n,sn,s和排列a1,a2 an a 1,a 2 dots,a n a1 a2 a n 若置換ps ap s a ps a 求置換ppp。考慮先找到排列a aa的迴圈節len lenle n,即a aa置換len s l en len s len len s len次能得到p p...

群及置換群的概念

bolg 設g為乙個元素的集合,稱g內的元素為元,為針對g這個集合的元素的運算,當 g g,滿足以下要求的時候,我們稱 g g,為群封閉性 g內的任何兩個元的 運算的結果仍在g內 交換律 a b c a b c a b c a b c 單位元 任何a e a a e a 逆元 a a 1 ea a ...

置換群 等價類計數

一.定義 群 群是啥?我不會啊 乙個置換是一種運算,代表讓物體交換位置的一種方法 顧名思義,由置換構成的群 使元素 k 不改變位置的群的集合 在置換群 g 作用下元素 k 的運動軌跡 一些點的集合 在置換 g 作用下產生的迴圈 e k times z k g 證明 不會 l frac sum c i...