码迷,mamicode.com
首页 > 编程语言 > 详细

sort it 树状数组+逆序对

时间:2019-01-22 19:11:25      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:int   图片   ring   none   stream   hid   cto   nbsp   准备   

 

sum[i]是1-i所有1的和,而i-sum[a[i]]就是在a[i]后面的数,即在i之前出现,却比他大的数。1是加在a[i]上,即i实际应该放的位置。而c[i]是为sum做准备的

技术分享图片
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<stdlib.h>
 6 #include<algorithm>
 7 #include<queue>
 8 #include<vector>
 9 #include<string>
10 #include<set>
11 #include<cctype>
12 #include<sstream>
13 #define mem(a) memset(a,0,sizeof(a))
14 #define LL long long
15 using namespace std;
16 const int N=1e6+5;
17 int a[N],c[N],n;
18 int lowbit(int x)
19 {
20     return x&-x;
21 }
22 void add(int x,int a)
23 {
24     while(x<=n) c[x]+=a,x+=lowbit(x);
25 }
26 int sum(int x)
27 {
28     int ans=0;
29     while(x)
30     {
31         ans+=c[x];
32         x-=lowbit(x);
33     }
34     return ans;
35 }
36 int main()
37 {
38     while(~scanf("%d",&n))
39     {
40         mem(c);
41         int ans=0;
42         for(int i=1;i<=n;i++)
43         {
44            scanf("%d",&a[i]);
45            add(a[i],1);
46            ans+=i-sum(a[i]);
47         }
48         printf("%d\n",ans);
49     }
50     return 0;
51 }
View Code

 

sort it 树状数组+逆序对

标签:int   图片   ring   none   stream   hid   cto   nbsp   准备   

原文地址:https://www.cnblogs.com/XXrll/p/10305404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!