线段树基础 poj2104
来源:互联网 发布:阿里云下载 编辑:程序博客网 时间:2024/05/16 10:09
题目链接
题目描述
有N个数,1~N,存在数列a[1~N]中(无序),输入i,j,k。求a[i ~ j] 之间第K小数。如 数列:1 5 2 6 3 7 4. 输入2 5 4 .输出:6
思路
- 用一个结构体存储输入元素的值和当前所在位置
- 将结构体按照输入元素值排序
- 从1 ~ N遍历每个元素,统计位置在i,j之间的元素个数,统计到第K个,这个位置对应的元素的值就是所求答案
代码
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct Node{ int pos,val;}nodes[110000];bool cmp(const Node n1, const Node n2){ return n1.val < n2.val;}int main(){ int N,M; scanf("%d%d",&N,&M); for(int i = 1; i<=N; i++){ scanf("%d",&nodes[i].val); nodes[i].pos = i; } sort(nodes+1, nodes+N+1, cmp); while(M--){ int a,b; scanf("%d%d",&a,&b); int cnt; scanf("%d",&cnt); int i; int res = 0; for(i = 1; i<=N; i++){ if(a<=nodes[i].pos && nodes[i].pos<=b){ res++; if(res == cnt) break; } } printf("%d\n",nodes[i].val); } return 0;}
0 0
- 线段树基础 poj2104
- 【线段树专题】poj2104
- poj2104-基础主席树
- poj2104 线段树+二分搜索
- poj2104(函数式线段树/主席树)
- 可持久化线段树(poj2104/hdu4866)
- poj2104 K-th Number (线段树实现)
- POJ2104 K-th Number 【线段树+二分】
- Hustoj (poj2104)线段树(划分树)
- 可持久化数据结构之线段树 hdu2665 poj2104
- poj2104 K-th Number (函数式线段树)
- hdu2665 poj2104 可持久化数据结构之线段树
- poj2104 (线段树求区间第k大)
- 185_K-th NUmber 线段树 (POJ2104)
- poj2104 K-th Number 离散+可持久化线段树
- 区间第k小 poj2104 可持久化线段树
- POJ2104-K-th Number-区间第k大-可持久化线段树/主席树
- [POJ2104/HDU2665]Kth Number-主席树-可持久化线段树
- Binary Tree Preorder Traversal - Leetcode
- ios 日期转换详细
- UVA - 11210 Chinese Mahjong 枚举
- Metadata Locking在5.5里所做改动带来的影响
- Binary Tree Postorder Traversal - Leetcode
- 线段树基础 poj2104
- 动画
- 日期转换
- 六种常见的排序方法
- Eclipse常用快捷键
- VS2010出现"PCH 警告:标头停止点不能位于宏或#if块中"异常的解决方法
- Unicode和多字节
- jquery返回顶部
- 关于521