[poj]-2104-K-th Number-可持久化线段树
来源:互联网 发布:及壮,知向廉洛之学 编辑:程序博客网 时间:2024/05/19 22:48
区间静态查找第K大值,无需修改,先离散化。马上省选了就没时间详细写了╮( ̄▽ ̄)╭
#include<iostream>#include<cstdio>#include<algorithm>#define maxn 100010using namespace std;struct node{int l, r, s;}t[maxn * 20];struct A{int n, i;}in[maxn];int n, m, cnt, root[maxn], rank[maxn];void insert(int &num, int &x, int l, int r){t[cnt] = t[x];x = cnt++;t[x].s++;if (l == r)return ;int mid = (l + r) >> 1;if (num <= mid)insert(num, t[x].l, l, mid);elseinsert(num, t[x].r, mid + 1, r);}int query(int i, int j, int k, int l, int r){if (l == r)return l;int tmp = t[t[j].l].s - t[t[i].l].s;int mid = (l + r) >> 1;if (k <= tmp)return query(t[i].l, t[j].l, k, l, mid);elsereturn query(t[i].r, t[j].r, k - tmp, mid + 1, r);}bool cmp(A a, A b){return a.n < b.n;}int main(){while (scanf("%d %d", &n, &m) != EOF){for (int i = 1; i <= n; i++){scanf("%d", &in[i].n);in[i].i = i;}sort(in + 1, in + n + 1, cmp);for (int i = 1; i <= n; i++)rank[in[i].i] = i;cnt = 1;for (int i = 1; i <= n; i++){root[i] = root[i - 1];insert(rank[i], root[i], 1, n);}while (m--){int i, j, k;scanf("%d %d %d", &i, &j, &k);printf("%d\n", in[query(root[i - 1], root[j], k, 1, n)].n);}}}
0 0
- POJ 2104 K-th Number (可持久化线段树)
- [poj]-2104-K-th Number-可持久化线段树
- poj 2104 K-th Number 可持久化线段树
- POJ 2104 K-th Number(可持久化线段树)
- POJ 2104 K-th Number 可持久化线段树
- poj-2104 K-th Number[主席树/函数式线段树/可持久化线段树]
- POJ 2104 K-th Number 区间第K大,可持久化线段树
- POJ 2104K-th Number(可持久化线段树-求第K大)
- 主席树(可持久化线段树)讲解 [POJ 2104] K-th Number
- poj2104 K-th Number 离散+可持久化线段树
- POJ2104-K-th Number-区间第k大-可持久化线段树/主席树
- 【POJ2104】K-th Number-主席树(可持久化线段树)+离散化
- POJ 2104 K-th Number 线段树
- POJ 2104 K-th Number (线段树)
- poj 2104 K-th Number 函数式线段树
- poj 2104 K-th Number(函数式线段树)
- POJ-2104-K-th Number(函数式线段树)
- poj 2104 K-th Number(划分线段树)
- POJ 1258 - Agri-Net(最小生成树' Prim)
- CentOS 安装Gnome
- ViewPager---ViewPager example -实现左右两个屏幕的切换
- yaml语言
- Delphi DLL使用接口和调用的方法
- [poj]-2104-K-th Number-可持久化线段树
- idea 14.0.1可用破解码生成代码
- 自定义拦截器
- Unity3d接入googleplay内购详细说明(三)
- Mininet实战之Fattree拓扑创建和iperfmulti功能
- Struts2中#号和%号的用法解析
- 定做班服定制鬼步舞队服大帽卫衣短袖T恤diy轮滑速干衣慧之根
- tar 解压缩命令
- ArcGIS教程:创建网络数据集(一)