树状数组求第K小元素
来源:互联网 发布:waves mac 编辑:程序博客网 时间:2024/06/09 18:12
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <set>#include <vector>#include <map>#include <queue>#include <stack>#include <algorithm>using namespace std;typedef long long LL;const int N = 1000+10;int tr[N];int n;int lowbit(int x){ return x & (-x);}void update(int val,int x){ while(x<=n) { tr[x] += val; x += lowbit(x); } return;}int find(int k){ int ans = 0; for(int i= 20;i>=0;i--) { ans |= (1<<i); if(ans>n || tr[ans]>=k) ans ^= (1<<i); else k -= tr[ans]; } return ans + 1;}int main(){ int x; memset(tr,0,sizeof(tr)); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&x),update(1,x); while(1) { int m; scanf("%d",&m); cout<<find(m)<<endl; } return 0;}
0 0
- 树状数组求第K小元素
- 树状数组求第K小元素
- POJ 2985:The k-th Largest Group 树状数组求第K小的元素
- 【树状数组求第k小】POJ 2892
- 求第k小元素
- 求数组中第k个小的元素
- 求两个有序数组的第k小元素
- 树状数组求第K小值 (spoj227 Ordering the Soldiers && hdu2852 KiKi's K-Number)
- 树状数组求第k大值
- 算法求第K小元素思路
- 快速排序求第k小元素
- 【树状数组求第k小+并查集】POJ 2985
- 求第K小/大的数(树状数组解法)
- 求第K小/大的数(树状数组解法)【续】
- 寻找数组中第k小元素
- 求数组第k小的元素 要求复杂度在O(n)
- 求数组中给定下标区间内的第K小(大)元素
- 求两个有序数组的中位数和者第k小元素
- <ul>与<ol>的区别
- Jenkins知识地图
- 笔记分享---Android 高清加载巨图
- Item 1: Consider static factory methods instead of constructors
- Java泛型详解
- 树状数组求第K小元素
- 一位入行20年的老程序员对新人的建议
- java线程第五课:线程中断
- 存储过程之小实例
- JS与JAVA互调的使用与打包混淆问题
- 中断与异常的区别
- android使用asynchttp网络请求服务器返回json数据并显示在手机
- 基本查找算法
- UML类图