将每组车厢节数从小到大进行排序,相邻两个元素进行交换,此题可采用冒泡算法,i次交换的次数等于前i-1次交换的次数
#include<iostream>
#include<cstring>
using namespace std;
int a[10005];
int f[10005];
int main(){
int N,t;
cin>>N;
int sum;
memset(f,0,sizeof(f));
for(int i=1;i<=N;i++){
cin>>a[i];
}
for(int i=1;i<=N;i++){
for(int j=1;j<N;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
f[i]++;
}
}
// cout<<f[i]<<endl;
f[i]+=f[i-1];递推关系式
}
cout<<f[N]<<endl;
}