2017-10-5模拟赛T2 小Z爱排序(sorting.*)
生活随笔
收集整理的這篇文章主要介紹了
2017-10-5模拟赛T2 小Z爱排序(sorting.*)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
Solution
比賽時找到了規律,但是沒有證出來……(當然最后還是AC了……)
顯然沒有被操作的數在排好序的序列中一定是連續的一段。
所以,沒有被操作的數一定從左到右連續地遞增(例如23456)。
而題目要求被操作的數盡量少,就是沒有被操作的數盡可能多,找到滿足條件的最長的一段就可以了。
例如,對于數據1 4 5 3 2 6 7 9 8,最長的一段為45678,所以最少操作次數為4。
附方法:
3放前=>314526798
2放前=>231456798
1放前=>123456798
9放后=>123456789
言歸正傳,找出這個最長的一段的長度len,則n-len即為答案。
類似動態規劃,對于第i個數a,如果a!=1且前面出現a-1(可以用數組維護),那么f[i]=f[出現a-1的位置]+1,否則f[i]=1。則答案為n-f[n]。復雜度O(n)。
拓展:
①如果題目要求找出方法呢?(當然得有spj)
②如果不是1~n的排列而是可以有重復的數呢?
Code
?
404 Not Found View Code?
轉載于:https://www.cnblogs.com/hotwords/p/7749651.html
總結
以上是生活随笔為你收集整理的2017-10-5模拟赛T2 小Z爱排序(sorting.*)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷模拟赛 数据结构
- 下一篇: 八年级上人教版英语书3页翻译