以前都是直接树状数组裸奔,昨天一个题数据量好大,过不了,没办法只能学离散化,今天A了第一个离散化的题

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define Max 500005
long long s,a[Max];
int n,max;
struct e
{int num,f;
}N[Max];
int cmp( const void *a,const void *b )
{return ( ( e * )a ) -> num - ( ( e * )b ) -> num;
}
inline int lowbit( int  x )
{return x & ( -x );
}
void update( int x )
{while( x <= max ){a[x]++;x += lowbit( x );}}
long long sum( int x )
{long long s = 0;while( x ){s += a[x];x -= lowbit( x );}return s;
}
int main(  )
{while( scanf( "%d",&n ) != EOF && n ){max = s = 0;memset( a,0,sizeof( a ) );for( int i = 1; i <= n; ++i ){scanf( "%d",&N[i].num );N[i].f = i;}qsort( N + 1,n,sizeof( N[1] ),cmp );max = n;for( int i = 0; i < n; ++i ){int x = N[i+1].f;s += i - sum( x );update( x );}printf( "%I64d\n",s );}return 0;
}

转载于:https://www.cnblogs.com/Lvsi/archive/2011/05/27/2059551.html

HDU 2689 POJ 2299 树状数组 + 离散化相关推荐

  1. POJ 2299 Ultra-QuickSort(树状数组+离散化)

    题目大意: 就是说,给你一个序列,然后让你求出这个序列有多少个逆序对,所谓逆序对就是对于这个序列中的元素有a[i]>a[j] 且i<j存在. 其实原题是这样说的,给你一个序列,让你用最少的 ...

  2. HDU 5792 World is Exploding(树状数组+离散化)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=5792 题意: 思路: lmin[i]:表示左边比第i个数小的个数. lmax[i]:表示左边比第i个 ...

  3. HDU 4417 Super Mario(莫队 + 树状数组 + 离散化)

    Super Mario 思路 区间查找问题,容易想到离线莫队,确实这题就是莫队,接下来我们考虑如何维护区间高度值问题. 既然是离线嘛,我们容易想到离散化和他挂钩,想想这题是否需要离散化,高度的最大值是 ...

  4. HDU - 5877 Weak Pair (dfs序+树状数组+离散化)

    VJ地址 题意:给一个有根树给你,计算一下满足下列条件的序列对的数目 (1)u是v的祖先(不能是它自己) (2)a[v]*a[u]<=k 思路:用DFS序分裂每一条链,使链上的点都是当前加入点的 ...

  5. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历

    题意 给我们一颗有根有向树 以及每个点得权值a[1]~a[n] 需要我们求出在这颗树种有多少对满足以下两个条件的pair (1)u是v的祖先节点 (2)a[u]*a[v]<= k N<=1 ...

  6. HDU - 5877 Weak Pair 2016 ACM/ICPC 大连网络赛 J题 dfs+树状数组+离散化

    题目链接 You are given a rootedrooted tree of NN nodes, labeled from 1 to NN. To the iith node a non-neg ...

  7. hdu_2227_Find the nondecreasing subsequences_树状数组,离散化

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2227 题意:给你一个集合,让你求递增子序列有多少个,和树状数组求逆序对差不多,不过数据比较大,要离散化 ...

  8. 2019CCPC湖南全国邀请赛-Chika and Friendly Pairs- 莫队+树状数组+离散化

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6534 思路: 莫队算法,树状数组求和.每个数对应的离散化之后的值需要打表存下来. Code: 1 # ...

  9. HDU6681 二维偏序计算贡献值 树状数组 离散化

    http://acm.hdu.edu.cn/showproblem.php?pid=6681 交点个数加1就是答案 使用二维偏序计算横竖射线的交点 #include <bits/stdc++.h ...

最新文章

  1. “面试不败计划”:垃圾垃圾回收
  2. html5中标签分为,HTML标签的三种类型
  3. 【Java Lambda表达式】Lambda表达式详解、Lambda表达式的等效使用方式、多线程
  4. C#开发终端式短信的原理和方法 .
  5. android黑屏日志_Android启动页黑屏的解决方案
  6. 蓝色中国风传统图案背景素材
  7. python github登陆_利用Python模拟GitHub登录!
  8. btoa java,java的btoa、atob
  9. 何先振第2期:Java语言描述与编写第一个程序
  10. linux 下录音软件,linux下录音软件Audacity[zt]
  11. 机器学习去除马赛克案例(代码)
  12. C++报错 invalid operands to binary expression
  13. JTree创建、获取和删除节点的方法
  14. CSV导入到clickhouse
  15. 程序员:耐得住寂寞,禁得住诱惑
  16. Android Studio 配置 Http Proxy
  17. 【分享】“飞书自建“在集简云平台集成应用的常见问题与解决方案
  18. 有关input输入框内容改变后的触发事件
  19. R语言GWR地理加权回归
  20. AcWing 1293. 夏洛克和他的女朋友(思维 欧拉筛 图论)

热门文章

  1. slf4j没有在linux中生成日志,logback+SLF4J 没打印日志
  2. 使用SQLite3支持中文路径
  3. JavaScript——this与箭头函数
  4. 前端JAVASCRIPT模块化开发
  5. 一篇文章读懂开源web引擎Crosswalk
  6. FX Composer 2 中文版快速教程
  7. websocket 带头部信息请求 header_BeetleX之Websocket协议分析详解
  8. date类型_Chapter 01. 常见数据类型概述 Overview of Common Data Types
  9. java学习之路目录(已完结)
  10. 详解:Oracle 数据库空间表、自定义用户、权限管理、序列、同义词、索引