混子


私信TA

用户名:H1910823015

访问量:4331

签 名:

等  级
排  名 362
经  验 5080
参赛次数 14
文章发表 16
年  龄 0
在职情况 学生
学  校 贺州学院
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include <stdio.h>

int a[500001],b[500001];

long long ans,n;

void gg(int l,int r)

{

int mid=(l+r)/2;

if(l==r)

return;

else

{

gg(l,mid);

gg(mid+1,r);

}

int i=l,j=mid+1,t=l;

while(i<=mid&&j<=r)

{

if(a[i]>a[j])

{

ans+=mid-i+1;

b[t++]=a[j];

j++;

}

else

{

b[t++]=a[i];

i++;

}

}

while(i<=mid)

{

b[t++]=a[i];

i++;

}

while(j<=r)

{

b[t++]=a[j];

j++;

}

for(int i=1;i<=r;i++)

a[i]=b[i];

return;

}

int main()

{

int n;

scanf("%d",&n);

for(int i=1;i<=n;i++)

scanf("%d",&a[i]);

gg(1,n);

printf("%lld",ans);

return 0;

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区