杭电Sort it 2689树状数组

原创 2015年11月21日 13:56:03

Sort it

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3510    Accepted Submission(s): 2546


Problem Description
You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need.
For example, 1 2 3 5 4, we only need one operation : swap 5 and 4.
 

Input
The input consists of a number of test cases. Each case consists of two lines: the first line contains a positive integer n (n <= 1000); the next line contains a permutation of the n integers from 1 to n.
 

Output
For each case, output the minimum times need to sort it in ascending order on a single line.
 

Sample Input
3 1 2 3 4 4 3 2 1
 

Sample Output
0 6
//虽然是水题,但是对于初学者来说很想通,自己好好推理推理
#include <iostream> #include <cstring> using namespace std; const int maxn=1010; int C[maxn],n; int lowbit(int x) {     return x&(-x); } void update(int i) {     while(i<=n)     {         C[i]+=1;         i+=lowbit(i);     } } int query(int i) {     int sum=0;     while(i>0)     {         sum+=C[i];         i-=lowbit(i);     }     return sum; } int main() {     while(cin>>n)     {         int sum=0;         memset(C,0,sizeof(C));         for(int i=1;i<=n;i++)         {             int a;            cin>>a;             update(a);             sum+=i-query(a);//得出比i大的的元素个数,即要交换的次数         }     cout<<sum<<endl;     }     return 0; }
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hdu 2689 sort it(树状数组 逆序数)

树状数组求逆序数,原来一直没搞明白,今天看了一遍文章讲的很清楚,下面把有关内容粘过来: 对于小数据,可以直接插入树状数组,对于大数据,则需要离散化,所谓离散化,就是将 100 200 300 ...

树状数组讲解与例题 杭电HDU1166,HDU1556,HDU2689

树状数组的总结 树状数组很巧妙地解决了数列的求和与查找,速度很快。树状数组,它改变数列中某一位,或者求某个区间的和,时间复杂度是O(logN);效率大为改善。 下面的图片很好的演示了树状数组的存储原理...

Sort It (树状数组+dp)

主页 讨论版 问题 名次 状态 统计 请参赛队员将NickName修改为以下格式:队员1_队员2_队员3 问题 F: Sort It 时间限制: 6 Sec  内存限制: 128 MB ...

【树状数组+二维】杭电 hdu 1892 See you~

/* THE PROGRAM IS MADE BY PYY */ /*-----------------------------------------------------------------...

杭电hdu 2492 Ping pong 树状数组

初识树状数组,对树状数组做个摘录:感觉这个图很经典,似乎一切奥妙都在里面。文章部分内容出自:http://www.cnblogs.com/yykkciwei/archive/2009/05/08/14...

杭电 2838 牛叉的树状数组

话说这道题要用的三个树状数组,不容易啊。我刚开始想的时候想明白了用公式怎么算,却想不出来怎么转化到树状数组上,总感觉有些地方实现不了,原来竟然是用三个树状数组。。。这让只写过一个树状数组的孩纸情何以堪...

杭电OJ 敌兵布阵 树状数组

是一道简单的树状数组的题,,是一道简单题。。。。。题目: C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营...

【树状数组 + 简单题】杭电 hdu 1166 敌兵布阵

/* THE PROGRAM IS MADE BY PYY */ /*-----------------------------------------------------------------...

杭电 2852 树状数组+二分

题目: KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav...

【树状数组+三维】杭电 hdu 3584 Cube

/* THE PROGRAM IS MADE BY PYY */ /*-----------------------------------------------------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)