竞赛
考级
思维水题。。 全题用时最短方法: 证据: 考虑一下两个移动能不能互相帮助就行了 AC代码:
题面大意 给你一个长度为nnn的全排列ppp,和一个整数kkk,每次可以任意选择kkk个元素,以升序移动到ppp的末尾,直到ppp为升序。 题意分析 求最小操作次数,使得ppp变为升序 解题思路 找到以1开头的最长上升序子序列qqq,那么不属于qqq部分的则都要移动,将非qqq部分的元素移动到ppp的尾部就好。 时间复杂度解析 我们只需要遍历一次ppp序列,就能找到子序列qqq,复杂度为O(n)O(n)O(n)。 代码演示
提交答案之后,这里将显示提交结果~