问题描述
- 这个题目要求有多少对 i < j i < j i<j满足 a i < a j a_i < a_j ai<aj
思路分析
- 我们直接在读入的时候就用multiset对之前读入的数排序好,再用迭代器找到比当前读入数小的数的个数即可
代码如下
#include <bits/stdc++.h>
using namespace std;
const int maxn = 310;
int a[maxn];
multiset<int> s;
int main()
{
int t;
cin >> t;
while (t--)
{
int n, m;
cin >> n >> m;
int ans = 0;
s.clear();
for (int i = 1; i <= m; i++)
{
cin >> a[i];
int tp = 0;
for (auto it = s.begin(); it != s.end(); it++)
{
if (*it < a[i])
{
tp++;
}
else
break;
}
s.insert(a[i]);
ans += tp;
}
cout << ans << endl;
}
return 0;
}