使用pbds平衡树实现
头文件代码如下:
// for policy based data structures
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
// ordered_set: extends set to find_by_order and order_of_key
typedef tree<long long, null_type, less<long long>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef tree<long long, null_type, less_equal<long long>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset;
#define int long long int
直接当成set用就行
#include <bits/stdc++.h>
using namespace std;
// for policy based data structures
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
// ordered_set: extends set to find_by_order and order_of_key
typedef tree<long long, null_type, less<long long>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef tree<long long, null_type, less_equal<long long>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset;
#define int long long int
void solve(){
int n;
cin >> n;
int ans = 0;
ordered_multiset s;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
cout<<s.order_of_key(x)<<endl;
s.insert(x);
}
cout << ans << endl;
}
int32_t main(){
int t;
cin >> t;
while (t--){
solve();
}
}