- 题目大意
给出一串数字,问能是它为顺序排列的最小交换数字方式。
- 解答思路
利用归并排序来求逆序数(注意数组的大小就行了)。
- 代码
#include<iostream>
using namespace std;
int num[100000];
int main()
{
int n,m;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> m;
for (int j = 1; j <= m; j++)
cin >> num[j];
int sum = 0;
for (int i = 1; i < m; i++)
for (int k = i + 1; k <= m; k++)
if (num[i] > num[k])
sum++;
cout << "Scenario " << "#"<<i<<":" << endl<<sum<<endl<<endl;
}
return 0;
}