poj 2104 K-th Number(主席树)
来源:互联网 发布:正规网络兼职赚钱 编辑:程序博客网 时间:2024/05/22 05:33
初学主席树。。。。
卿学姐视频中的例题:
http://www.bilibili.com/video/av4619406/?from=search&seid=136071245852691687#page=1
附俩学习链接:
http://blog.csdn.net/coco56181712/article/details/75578177
http://blog.csdn.net/your_eyes_see_sea/article/details/77801856
#include <cstdio>#include <cstring>#include <vector>#include <algorithm>using namespace std;const int MAXN = 1e5+10;int n,m,cnt,root[MAXN],a[MAXN],x,y,k;struct node{ int l,r,sum;}T[MAXN*30];vector<int> v;int getid(int x){ return lower_bound(v.begin(),v.end(),x)-v.begin()+1;}void update(int l, int r, int &x, int y, int k){ T[++cnt] = T[y]; T[cnt].sum++; x = cnt; if(l == r) return; int mid = (l+r) >> 1; if(k <= mid) update(l,mid,T[x].l,T[y].l,k); else update(mid+1,r,T[x].r,T[y].r,k);}int query(int l, int r, int x, int y, int k){ if(l == r) return l; int mid = (l+r) >> 1; int sum = T[T[y].l].sum - T[T[x].l].sum; if(sum >= k) return query(l,mid,T[x].l,T[y].l,k); else return query(mid+1,r,T[x].r,T[y].r,k-sum);}int main(){ scanf("%d %d",&n,&m); for(int i = 1; i <= n; ++i) { scanf("%d",&a[i]); v.push_back(a[i]); } sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); for(int i = 1; i <= n; ++i) update(1,n,root[i],root[i-1],getid(a[i])); for(int i = 1; i <= m; ++i) { scanf("%d %d %d",&x,&y,&k); printf("%d\n",v[query(1,n,root[x-1],root[y],k)-1]); } return 0;}
阅读全文
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 主席树
- 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(主席树)
- POJ 2104 K-th Number(主席树)
- [POJ 2104] K-th Number (主席树)
- POJ 2104:K-th Number(主席树)
- POJ 2104 K-th Number (主席树)
- Linux进程-1.进程概述
- 使用PHP:Filter函数(过滤器)获取参数并进行过滤
- Android小例子--实现微信界面
- Bootstrap(3)
- 扩展欧几里得以及欧拉
- poj 2104 K-th Number(主席树)
- Python爬取登录后的OJ练习中的题目数据
- < 笔记 > Java SE
- win7下安装配置tomcat,java运行环境
- hihocode#1369 : 网络流一·Ford-Fulkerson算法(EK)
- dbUtils 中的各种 Handler 什么 意思
- C语言 打印九九乘法表
- Ubuntu16.04 安装WPS(亲测)
- verilog简单驱动LCD1602