蓝桥杯备考(倒计时五十天)——小朋友排队

http://lx.lanqiao.cn/problem.page?gpid=T3012icon-default.png?t=M1FBhttp://lx.lanqiao.cn/problem.page?gpid=T3012

#include
#include
#include//memset函数头文件

using namespace std;

typedef long long LL;
const int N=1000010;
int h[N],tr[N];
int sum[N];
int n;

int lowbit(int x)
{
    return x&-x;
}

void add(int x,int v)
{
    for(int i=x;i<=N;i+=lowbit(i))
        tr[i]+=v;
}

int query(int x)
{
    int res=0;
    for(int i=x;i;i-=lowbit(i))
        res+=tr[i];
    return res;
}

int main()
{
    scanf("%d",&n);
    
    for(int i=0;i=0;i--)
    {
        add(h[i],1);//给树状数组赋值
        sum[i]+=query(h[i]-1);//恰好小于该身高对应的树状数组即为比该数小的数量
    }
    
    LL res=0;
    for(int i=0;i

你可能感兴趣的:(蓝桥杯)