求逆序数  ----》 离散化

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
#define M 1000005
typedef __int64 LL;
LL a[M];
int n;
struct node
{LL x,y;
}s[M];
bool cmp(node p,node q)
{return p.x < q.x;
}
LL lowbit(LL x)
{return x&(-x);
}
void add(LL pos,LL num)
{while(pos <= n){a[pos]+=num;pos += lowbit(pos);}
}
LL getsum(LL pos)
{LL res = 0;while(pos > 0){res += a[pos];pos -= lowbit(pos);}return res;
}
int main()
{while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));for(LL i = 1;i <= n;i++){scanf("%I64d",&s[i].x);s[i].y = i;}sort(s+1,s+n+1,cmp);LL ret = 0;for(LL i = 1;i <= n;i++){add(s[i].y,1);ret += i - getsum(s[i].y);}printf("%I64d\n",ret);}
}

hdu-Frosh Week(树状数组)相关推荐

  1. HDU 6681(树状数组统计平面内射线的交点个数)

    HDU 6681(树状数组,统计平面内射线的交点个数) 题目链接:传送门 题意:给出k条射线,求射线将n∗mn*mn∗m 的区域分成几个联通块.每两条射线的端点x坐标和y坐标都互不相同. 思路:根据 ...

  2. hdu 5497 Inversion(树状数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5497 解题思路: 用树状数组维护一段区间L,区间长度为m,依次枚举该区间的终点ai,即将该点加入到区间 ...

  3. C - Group HDU - 4638[离线+树状数组]

    感觉比较抽象:举个例子:a[] = {3 1 2 5 4} 树状数组里面:1,1,-1,1,-1 sum(2):就是[1,2]区间能分成多少个连续的段:1和3 sum(3):1 2 3是一段 如果是询 ...

  4. HDU 4638 Group 树状数组 + 思路

    实际上就是问这个区间编号连续的段的个数,假如一个编号连续的段有(a+b)个人,我把他们分在同一组能得到的分值为(a+b)^2,而把他们分成人数为a和b的两组的话,得到的分值就是a^2+b^2,显然(a ...

  5. hdu 5542(树状数组优化dp)

    题意: 求n个数中长度为m的上升子序列的个数 解题思路:dp[i][j]表示第i个数长度为j的上升序列的个数.dp[i][j] = sum{dp[k][j-1] | a[k] < a[i]},这 ...

  6. HDU 4325 离散化+树状数组 或者 不使用树状数组

    题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...

  7. Billboard HDU - 2795(树状数组,单点修改,区间查询)

    题目链接:https://vjudge.net/problem/HDU-2795 思路:h = 1e9行不通,因为广告是1*w的,所以n个广告最多只需要 h = n的高度,那么h=2e5就可以接受了. ...

  8. HDU 3584 三维树状数组

    三维树状数组模版.优化不动了. #include <set> #include <map> #include <stack> #include <cmath& ...

  9. HDU 4125 Moles 树状数组 + KMP

    这题的重点就在于建树, 题目读懂以后, 就会发现, 树建好以后就是一颗排序二叉树. 于是每次用树状数组二分找该节点的插入点. 树建完以后DFS得到字符串, 由于节点非常多, 于是要手写栈. 字符串得到 ...

  10. HDU 4262 Juggler 树状数组

    将每个球按输入顺序编号,建立 它第几个被扔掉->编号 的映射关系. 记录当前在手里的球的编号,按扔掉的顺序查找这个球的编号,看看这个球是逆时针转到手里更近还是顺时针转到手里更近,即当前扔掉球的编 ...

最新文章

  1. [JS]正则式的使用示例:替换字符串中所有指定内容
  2. SpringMVC级联获取前台数据
  3. Pytorch基础(三)—— DataSet的应用
  4. 投巧解决JavaScript split方法出现空字符的问题
  5. [react] componentWillUpdate可以直接修改state的值吗
  6. 逻辑综合工具DesignCompiler使用教程
  7. linux交叉编译aix_mips-linux-gcc交叉编译工具链搭建小结【转】
  8. 解决Vista文件操作缓慢问题:五大方案
  9. 使用VB6.0编写管家婆服装----百胜服装ERP数据转换程序和通用SQL server查询程序的心得
  10. 谷歌高管地震:谷歌大脑联合创始人Samy Bengio离职了
  11. 【对讲机的那点事】带你玩转宝锋UV6R对讲机(四)
  12. IPAD2 恢复出厂设置
  13. 堪萨斯州立大学计算机专业,全美顶尖大学:堪萨斯州立大学
  14. Visual Studio 2008下载地址汇总及相关注册破解方法.
  15. Spring学习手记(二)——控制台调度任务
  16. 服务器安装docker和docker-compose,并开放2375端口
  17. opencv+hough直线检测+fitline直线拟合
  18. 安卓开发快速学习!330页PDF,10万字的知识点总结,附面试题答案
  19. 12月给自己一个逆袭的机会,社科院与杜兰大学金融管理硕士项目期待你的加入
  20. C/C++中的void 和 void *

热门文章

  1. 神策 2020 数据驱动用户大会:新愿景 + 新定位 + 新舰队正式亮相!
  2. 喜报 | 安信证券签约神策数据!
  3. 喜报!在行签约神策数据
  4. python中字母大小写的转换,和一些字典的常规操作
  5. 二十六个月Android学习工作总结
  6. hadoop配置文件默认配置
  7. SQL Server 2008 正式版安装指南(附序列号)
  8. if with large data project
  9. what should we learn from Magnetite?
  10. 没有必要对着手机的记事本来记录太多的东西:尝试一下许愿墙的模式吧