hdu-Frosh Week(树状数组)
求逆序数 ----》 离散化
#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(树状数组)相关推荐
- HDU 6681(树状数组统计平面内射线的交点个数)
HDU 6681(树状数组,统计平面内射线的交点个数) 题目链接:传送门 题意:给出k条射线,求射线将n∗mn*mn∗m 的区域分成几个联通块.每两条射线的端点x坐标和y坐标都互不相同. 思路:根据 ...
- hdu 5497 Inversion(树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5497 解题思路: 用树状数组维护一段区间L,区间长度为m,依次枚举该区间的终点ai,即将该点加入到区间 ...
- 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是一段 如果是询 ...
- HDU 4638 Group 树状数组 + 思路
实际上就是问这个区间编号连续的段的个数,假如一个编号连续的段有(a+b)个人,我把他们分在同一组能得到的分值为(a+b)^2,而把他们分成人数为a和b的两组的话,得到的分值就是a^2+b^2,显然(a ...
- hdu 5542(树状数组优化dp)
题意: 求n个数中长度为m的上升子序列的个数 解题思路:dp[i][j]表示第i个数长度为j的上升序列的个数.dp[i][j] = sum{dp[k][j-1] | a[k] < a[i]},这 ...
- HDU 4325 离散化+树状数组 或者 不使用树状数组
题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...
- Billboard HDU - 2795(树状数组,单点修改,区间查询)
题目链接:https://vjudge.net/problem/HDU-2795 思路:h = 1e9行不通,因为广告是1*w的,所以n个广告最多只需要 h = n的高度,那么h=2e5就可以接受了. ...
- HDU 3584 三维树状数组
三维树状数组模版.优化不动了. #include <set> #include <map> #include <stack> #include <cmath& ...
- HDU 4125 Moles 树状数组 + KMP
这题的重点就在于建树, 题目读懂以后, 就会发现, 树建好以后就是一颗排序二叉树. 于是每次用树状数组二分找该节点的插入点. 树建完以后DFS得到字符串, 由于节点非常多, 于是要手写栈. 字符串得到 ...
- HDU 4262 Juggler 树状数组
将每个球按输入顺序编号,建立 它第几个被扔掉->编号 的映射关系. 记录当前在手里的球的编号,按扔掉的顺序查找这个球的编号,看看这个球是逆时针转到手里更近还是顺时针转到手里更近,即当前扔掉球的编 ...
最新文章
- [JS]正则式的使用示例:替换字符串中所有指定内容
- SpringMVC级联获取前台数据
- Pytorch基础(三)—— DataSet的应用
- 投巧解决JavaScript split方法出现空字符的问题
- [react] componentWillUpdate可以直接修改state的值吗
- 逻辑综合工具DesignCompiler使用教程
- linux交叉编译aix_mips-linux-gcc交叉编译工具链搭建小结【转】
- 解决Vista文件操作缓慢问题:五大方案
- 使用VB6.0编写管家婆服装----百胜服装ERP数据转换程序和通用SQL server查询程序的心得
- 谷歌高管地震:谷歌大脑联合创始人Samy Bengio离职了
- 【对讲机的那点事】带你玩转宝锋UV6R对讲机(四)
- IPAD2 恢复出厂设置
- 堪萨斯州立大学计算机专业,全美顶尖大学:堪萨斯州立大学
- Visual Studio 2008下载地址汇总及相关注册破解方法.
- Spring学习手记(二)——控制台调度任务
- 服务器安装docker和docker-compose,并开放2375端口
- opencv+hough直线检测+fitline直线拟合
- 安卓开发快速学习!330页PDF,10万字的知识点总结,附面试题答案
- 12月给自己一个逆袭的机会,社科院与杜兰大学金融管理硕士项目期待你的加入
- C/C++中的void 和 void *