1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】
生活随笔
收集整理的這篇文章主要介紹了
1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://pintia.cn/problem-sets/994805342720868352/problems/994805403651522560
這種相關的題目見過很多次了。
常見的是只可以交換相鄰兩項求,有序后最少的步數。這類模型直接求逆序對即可。
還有一種模型是可以任意的交換兩個數,求有序后最小的步數,答案是 n-環的個數。
本題和上面的差不多的思路,不過是加了必須通過0來交換的這一條限制。
首先,可以分析的得出,這個數組對應圖的話都是一個個的環,向這種只有環的圖稱為置換圖
- 如果這個數本身是一個自環,那么說明他已經在對應的位置了,那么直接跳過。
- 如果一個環和0在同一個環內,共有cnt個點,那么我們需要交換 cnt-1 此。
- 如果一個環沒有0,且共有cnt個點,那么首先我們得先將0加進來,然后再依次交換。加入進來1次操作,cnt+1個點交換 需要cnt次 故共cnt+1次
總結
以上是生活随笔為你收集整理的1067 Sort with Swap(0, i) (25 分)【难度: 中 / 知识点: 置换群】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1066 Root of AVL Tre
- 下一篇: P3385 【模板】负环