爱吃瓜子的克鲁克山 2022-09-25 15:40 采纳率: 30%
浏览 2

atcoder abc 190 F

atcoder abc 190 F


```c++
#include <bits/stdc++.h>
#define lowbit(x) (x&(-x))
using namespace std;

void be(int a,int *g,int n)
{
    while(lowbit(a)+a<=n)
    {
        a+=lowbit(a);
        ++g[a];
    }
}
int fd(int a,int *g)
{
    int tt=0;
    tt+=g[a];
    while(a-lowbit(a)>0)
    {
        a-=lowbit(a);
        tt+=g[a];
    }
    return tt;
}
int main()
{
    int n;
    cin>>n;
    int a[n+1],g[n+1]={};
    int *p=g;
    int ans=0;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i];
        ++a[i];
        ++g[a[i]];
        be(a[i],p,n);
        ans+=i-fd(a[i],p);
    }
    for(int i=1;i<=n;++i)
    {
        cout<<ans<<endl;
        ans-=a[i]-1;
        ans+=n-a[i];
    }
    return 0;
}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-25 17:03
    关注
    • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:AtCoder ABC 243题解
    评论

报告相同问题?

问题事件

  • 创建了问题 9月25日