树状数组模板:

//Cnt为数组的界
//cnt[i]为编号或者数值上小于id的数量
void Update(LL Id)
{while(Id<=Cnt){cnt[Id]++;Id+=lowbit(Id);}
}
LL num(LL Id)
{LL ans=0;while(Id>0){ans+=cnt[Id];Id-=lowbit(Id);}return ans;
}

离散化

//arr为保存原数据的数组
//id为保存新的ID的数组
sort(arr+1,arr+1+n);
Cnt=unique(arr+1,arr+1+n)-arr-1;
for(LL i=1;i<=n;i++) id[i]=lower_bound(arr+1,arr+1+Cnt,p[i].x)-arr;

求第K大的模板

void add(int x,int val)
{while(x<size){c[x]+=val;x+=lowbit(x);}
}
int sum(int x)
{int ans=0;while(x){ans+=c[x];x-=lowbit(x);}return ans;
}
//以上为树状数组的常规代码
int query(int k)
{int ans=0,cnt=0;for(int i=20;i>=0;i--){ans+=(1<<i);
//这里使用了二进制的思想,去卡那个目标的第k大,当ans小于第K大时,ans就会增加,当ans大于等于第K大
//时,ans就放弃这次增加,这样最后得到的ans必然是第K大-1if(ans>=maxn||cnt+c[ans]>=k){ans-=(1<<i);}else{cnt+=c[ans];}}return ans+1;
}

转载于:https://www.cnblogs.com/fly-white/p/10092749.html

树状数组与离散化与求第K大模板相关推荐

  1. szu 寒训第二天 树状数组 二维树状数组详解,以及树状数组扩展应用【求逆序对,以及动态第k小数】

    树状数组(Binary Index Tree) 树状数组可以解决可以转化为前缀和问题的问题 这是一类用以解决动态前缀和的问题 (有点像线段树简版) 1.对于 a1 + a2 + a3 + - + an ...

  2. Color the ball(树状数组区间更新+单点求值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Ot ...

  3. XJTUOJ wmq的队伍(树状数组求 K 元逆序对)

    题目链接:http://oj.xjtuacm.com/problem/14/[分析]二元的逆序对应该都会求,可以用树状数组.这个题要求K元,我们可以看成二元的.我们先从后往前求二元逆序对数, 然后对于 ...

  4. [Split The Tree][dfs序+树状数组求区间数的种数]

    Split The Tree 时间限制: 1 Sec  内存限制: 128 MB 提交: 46  解决: 11 [提交] [状态] [讨论版] [命题人:admin] 题目描述 You are giv ...

  5. 0x42.数据结构进阶 - 树状数组

    目录 一.树状数组与逆序对 A.luogu P1908 逆序对(模板题) B.AcWing 241. 楼兰图腾 树状数组的拓展应用 1.区间加,求单点值 A.AcWing 242. 一个简单的整数问题 ...

  6. 最长上升子序列(LIS)/最长不上升子序列问题算法详解+例题(树状数组/二分优化,看不懂你来打我)

    目录 最长上升子序列 一.朴素做法O(2n)O(2^n)O(2n) 二.优化做法O(nlogn)O(nlogn)O(nlogn) 三.例题引入:P1020 导弹拦截(求最长上升子序列和最长不上升子序列 ...

  7. csu 1757(贪心或者树状数组)

    1757: 火车入站 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 209  Solved: 51 [Submit][Status][Web Boar ...

  8. HDOJ/HDU 1556 Color the ball(树状数组)

    Problem Description N个气球排成一排,从左到右依次编号为1,2,3-.N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从 ...

  9. HDU 5869 Different GCD Subarray Query 树状数组 + 一些数学背景

    http://acm.hdu.edu.cn/showproblem.php?pid=5869 题意:给定一个数组,然后给出若干个询问,询问[L, R]中,有多少个子数组的gcd是不同的. 就是[L, ...

最新文章

  1. 正视自己的所想所求,活出真实的自己
  2. 论文阅读:An Enhanced Deep Feature Representation for Person Re-identification
  3. 组件中props参数的应用
  4. Arraylist、HashSet去重复 treeSet排列实现方法 HashMap遍历取值
  5. 大地发生了变化写具体_小学语文三年级下册期末检测卷 (2)
  6. location 拦截所有_让它帮你干掉所有流氓软件,还你一个清静系统
  7. 全世界的狗都没有“生殖隔离” | 今日趣图
  8. 003之MFCSocket异步编程(指针机制)
  9. bigdecimal 科学计数转普通计数_通用计数器的应用价值
  10. android 短信优先级,Android-消息机制
  11. 用VBS实现公司自动打卡
  12. JS表单学习笔记(思维导图)
  13. 一起谈.NET技术,用NuGet掌管你的Visual Studio扩展
  14. Android 5.1长按电源键添加重启功能
  15. java 动态代理 jdk为何比cglib效率低 原理总结
  16. 一文读懂斗鱼上市:直播江湖风云再起,强行盈利背后的艰难上市路
  17. VBA代码自动缩进排版-VBA代码助手一键排版功能
  18. 「硬见小百科」很全的二极管干货
  19. 寻找回文素数python
  20. 竖流式沉淀池集水槽设计计算_竖流沉淀池设计计算书.

热门文章

  1. Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory...
  2. Beego的controller怎么用嵌入实现继承问题
  3. 进程注入的研究与实现
  4. IPSEC ×××主模式的九个包交换
  5. angular http demo
  6. 将shp文件导入到GeoDatabase中
  7. sharepoint 2007 网站操作 显示菜单不全
  8. mybatis转义反斜杠_mybatis like 的坑
  9. 互联网协议 — IPSec 安全隧道协议
  10. Go 语言编程 — 高级数据类型 — 数组