小鱼比可爱
模拟、树状数组、线段树典型例题,把小鱼可爱值一个个加入再查询比它小的值有多少就行了
首先是暴力AC代码
这个只要暴力模拟查找就行了,时间复杂度大概O(n^2),很慢,但是可以过n<=100
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,fish[110];
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>fish[i];
int tmp=0;
for(int j=1;j<i;j++)
if(fish[i]>fish[j])
tmp++;
cout<<tmp<<" ";
}
return 0;
}
然后是树状数组AC代码
O(nlogn),又快又好写,跟逆序对有点像,空间复杂度比线段树好一点
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,ma