hdu2689树状数组
2016-03-27 19:47
351 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2689
#include<iostream> #include <cstdio> #include <cstring> using namespace std ; int sum[1005];//记录每个元素个数 int n ; int lowbit(int x) { return x&-x; } void update(int i,int val) { while(i<=n) { sum[i]+=val; i+=lowbit(i); } } int Sum(int i) { int s=0; while(i) { s+=sum[i]; i-=lowbit(i); } return s; } int main() { int a[1005],b[1005]; while(scanf("%d",&n)!=EOF) { int count=0; memset(b,0,sizeof(b)); memset(sum,0,sizeof(sum)); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n; i++) { b[i]=Sum(a[i]);//统计a[i]前面1~a[i]的个数,即比a[i]小的个数 update(a[i],1);//a[i]的个数加一 count+=i-b[i]-1;//由于是求前面比他大的,要倒过来 } cout<<count<<endl; } return 0; }
相关文章推荐
- MySQL学习(二)
- Listener监听器
- 基于UDP/IP 协议的Socket程序
- ViewPagerIndicator
- 初学visual studio 2013 遇到的几个问题
- 我的Python学习之路之基本语法-函数
- ZMY_分页加载
- 微信公众平台开发(112) 微信卡券
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- cocos2d-x 事件分发机制 ——加速计事件监听
- Linux第五周学习总结
- join中连接条件放置位置
- Centos系统启动流程
- javascript 事件处理
- HttpServlet was not found on the Java
- 指针数组/数组指针
- 【机房重构】——DataTable转泛型
- 2016.3.27-学习笔记:裸板程序、U-Boot、内核、文件系统的烧写
- 正则表达式匹配语法
- 软件测试1