求过

· · 题解

题目简述

将一个序列升序排列,每次可以把队伍的第一位往后移若干位,求最小步数。

思路

赤裸裸的暴力。

每一次将第一只奶牛往后移若干位,移到她需要到的地方。把第 a 只奶牛移到第 b 只奶牛的位置上,总共需要的步数为 | a - b | 步。

代码

#include<iostream>
#define luogu return
#define yyds 0;
using namespace std;
int n,bs,a[105],k=1;
int main(){
    cin>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    for(int i=1;i<=n;++i){
        if(a[i]<a[i-1]){
            bs+=(i-k);
            k=i;
        }
    }
    cout<<bs;
    luogu yyds
}