POJ 2104 K-th Number——————主席树模板,区间第k大

基于用户的协同过滤算法(userCF) 1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过... 阅读详情

K-th Number

Time Limit: 20000MS Memory Limit: 65536K
Total Submissions: 77307 Accepted: 27874
Case Time Limit: 2000MS

Description

You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to return quickly k-th order statistics in the array segment.
That is, given an array a[1…n] of different integer numbers, your program must answer a series of questions Q(i, j, k) in the form: “What would be the k-th number in a[i…j] segment, if this segment was sorted?”
For example, consider the array a = (1, 5, 2, 6, 3, 7, 4). Let the question be Q(2, 5, 3). The segment a[2…5] is (5, 2, 6, 3). If we sort this segment, we get (2, 3, 5, 6), the third number is 5, and therefore the answer to the question is 5.

Input

The first line of the input file contains n — the size of the array, and m — the number of questions to answer (1 <= n <= 100 000, 1 <= m <= 5 000).
The second line contains n different integer numbers not exceeding 109 by their absolute values — the array for which the answers should be given.
The following m lines contain question descriptions, each description consists of three numbers: i, j, and k (1 <= i <= j <= n, 1 <= k <= j - i + 1) and represents the question Q(i, j, k).
Output

For each question output the answer to it — the k-th number in sorted a[i…j] segment.

Sample Input

7 3
1 5 2 6 3 7 4
2 5 3
4 4 1
1 7 3

Sample Output

5
6
3

Hint

This problem has huge input,so please use c-style input(scanf,printf),or you may got time limit exceed.

模板题,求区间第k大

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>

using namespace std;
/*
求区间第k大
poj - 2104
*/

const int MAXN = 1e5+7;
int n, m, cnt, root[MAXN], a[MAXN], x, y, k;
struct node{int l, r, sum;} T[MAXN*40];
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 pos) {// T[y] 是上一版本的, T[x] 是这一版本的
        T[++cnt] = T[y]; T[cnt].sum++; x = cnt;
        if(l == r) return ;
        int mid = (l+r)>>1;
        if(mid >= pos)  update(l, mid, T[x].l, T[y].l, pos);
        else            update(mid+1, r, T[x].r, T[y].r, pos);
}
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;
}

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了 本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。 阅读详情

相关推荐

《玩儿起来吧》MATLAB 实时图像处理系列(一二三四)

大家学了图像处理之后,是不是就想学以致用。而要用于生活中,最好的方式就是和摄像头搭配,实现实时图像处理。今天就给大家分享MATLAB实时图像处理的基础方法,希望能帮你快速入门。

HPC_ZY 1万+

POJ2104_K-th number

题意: 给n个数,m次询问s,t,k,每次问[s, t]区间的第k大数 思路: 暴力: 排一次序,然后对于每次的询问[s, t],从头开始找那些在[s, t]的数(需要提前记录在原数组的下标),并用cnt计数,当cnt=k时就是该区间的第k大数。 #include <cstdio> #include <cstring> #include <algorithm> ...

CY05627的博客 360

植物叶绿体基因组分析全攻略:从共线性到密码子偏好性

本文全面解析植物叶绿体基因组分析流程,从共线性分析到密码子偏好性研究。详细介绍了叶绿体基因组结构特征、测序数据获取与质量控制、基因组组装与注释方法,以及比较基因组学和进化分析技术。特别关注IR区边界变异分析和选择压力评估,为植物系统发育研究和物种鉴定提供实用指南。

weixin_28475533的博客 222

POJ 2104 Kth Number 可持续化权值线段树-主席树

K-th NumberTime Limit: 20000MS Memory Limit: 65536KTotal Submissions: 65894 Accepted: 23205Case Time Limit: 2000MSDescriptionYou are working for Macrohard company in data structures department. After ...

Uniontake 391

DESeq2差异分析结果不会看?用这个R脚本5分钟生成发表级火山图和热图

本文详细介绍了如何使用R语言快速可视化DESeq2差异分析结果,5分钟内生成可直接用于论文发表的火山图和热图。通过解析DESeq2数据结构、展示ggplot2和EnhancedVolcano包的绘图技巧,以及pheatmap包的热图定制方法,帮助研究者高效呈现差异表达基因分析结果。

weixin_30326515的博客 340

说说通用报表控件

我们已经开发有2款WINCC报表控件,一种是固定模板,一种是自定义模板。但是它们有个共同特点,就是数据都是来自WINCC的归档数据库。使用WINCC归档数据库的好处是不需要自己写脚本保存数据。但是有些情况下,我们需要自己保存数据,或者第三方系统通过数据表的方式给我们提供数据。那这样的话,我们之前的两款控件就不支持了。正好有个客户有类似需要,于是加了一天班写了个通用报表控件。之所以说是通用,是因为它可以插入任何支持.NET控件的组态软件中,比如WINCC、IFIX等。并且它不依赖于组态软件自己...

HwLib_的博客 3551

POJ2104 Kth Number —— 主席树

题目链接:2104 — K-th Number Description You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structu...

zhaohaibo的博客 426

手把手教你用Python+GDAL处理0.5米吉林一号卫星影像(附代码)

本文详细介绍了如何使用Python和GDAL处理吉林一号0.5米高分辨率卫星影像,包括环境配置、数据预处理、分辨率融合、植被指数计算及地物分类等关键步骤。通过实战代码示例,帮助开发者高效处理大尺寸遥感数据,解决资源崩溃和算法选择问题,提升遥感影像分析能力。

weixin_30892037的博客 128

POJ2104Kth Number

整体二分模板题, 有些细节需要注意 #include<cstdio> #include<cctype> #include<climits> #include<algorithm> #include<cstring> using namespace std; inline int read() { ...

dk810510的博客 180

OFDM调制解调系统信道估计和均衡算法的MATLAB仿真

然后,从接收到的信号中提取导频序列,并使用LS算法进行信道估计。OFDM(正交频分复用)是一种常用于高速数据传输的调制技术,它将高速数据流分割成多个低速子载波,通过在不同的子载波上传输数据,实现了频域上的正交性。因此,信道估计和均衡算法在OFDM系统中起着至关重要的作用,用于减小信道衰落引起的影响。通过运行上述代码,可以进行基于LS算法的OFDM调制解调系统信道估计和均衡的MATLAB仿真。本文将介绍一种基于LS(最小二乘)算法的OFDM调制解调系统信道估计和均衡算法,并提供相应的MATLAB仿真代码。

uote_e的博客 229

Jetson Nano 实战指南:深度学习环境配置与 YOLOv5 边缘端部署解析

Jetson Nano是NVIDIA推出的嵌入式AI开发板,凭借其强大的GPU计算能力和完善的软件生态系统,成为边缘AI部署的理想平台。本教程源于作者团队参加2024中国机器人大赛暨RoboCup机器人世界杯中国赛机器人先进视觉3D识别赛道的实战经验,是一份经过验证的环境部署指南。

FJN110的博客 152

poj2104&&hdu2665kth number【主席树入门题+讲解】

又是卡了一天的知识点,(其实是看不下去下午上网来着,(⊙﹏⊙)b)昨天差点找人问带有懒惰标记的线段树和主席树的区别与联系,多亏憋住了……主席树里面存储的某数字出现的次数,而线段树大多数储存数值,也不好说谁好谁不好,毕竟前者主要处理区间内与个数有关系的问题,比如说区间第k小、区间内不重复数字个数等等,这些线段树都做不了,据说修改主席树时要用树状数组,那不就成了树套树?omg    说几个孙大神的课

MissZhou要努力 1114

【人工智能】Cursor模型被封?两步教你破解

Cursor模型全线被禁,主流模型如Claude、GPT-4无法访问,仅剩Deepseek等基础模型可用。官方证实限制源于上游API区域政策,提供三种"无效"解决方案引发用户不满。社区发现有效解决方式:需同时开启全局代理和将Cursor网络设置改为HTTP/1.1协议,详细步骤包括修改用户设置和完全重启程序。另有SOCKS5代理配置方案供高级用户选择。技术原理推测HTTP/1.1可绕过区域检测。用户面临继续使用或转投其他工具的选择,社区交流受限但仍有讨论。

奶爸的编程之路,也就一周冷个三天 2199

POJ-2104-K-th Number(区间第K大+主席树模板题)

Description You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able t...

weixin_30248399的博客 112

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【主席树_模板题】POJ 2104 K-th Number

主席树_模板题【查询区间第k小】

L_X_ 292

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POJ 2104 K-th Number

POJ 2104 K-th Number 题目链接 Description You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to return quickly k-th order sta

旺崽的博客 2674

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

K-th Number POJ - 2104 (主席树 | 划分树)(附动态区间主席树模板)

K-th Number POJ - 2104 You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would...

weixin_44090305的博客 1646

主席树模板 [poj2104]K-th Number

K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 40017   Accepted: 13068 Case Time Limit: 2000MS Description You are working for Macrohard c

Vampire 843

poj-2104 K-th Number【主席树模板】

K-th Number Time Limit:20000MS Memory Limit:65536K Total Submissions:71731 Accepted:25541 Case Time Limit:2000MS Description You are working for Macrohard company in data ...

微微风簇浪,散作满河星 508

K-th Number POJ - 2104 (主席树模板)

题目连接:POJ 2104 kth number You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that wo...

zx93的博客 232

POJ2104-K-th Number(静态主席树模板 区间第k小)

题目链接 You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to retur...

QAQ 288

poj2104 K-th Number (区间第K小,主席树 模板题)

题意: 多组案例。 给n和m,表示长度为n的数列,和m个询问 每个询问要求输出区间L-R中第K小的数 分析: 区间第K小模板题, 直接上主席树 code: #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> us...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 223

K-th Number Poj - 2104 主席树

K-th Number Poj - 2104 主席树 题意 给你n数字,然后有m次询问,询问一段区间内的第k小的数。 解题思路 这个题是限时训练做的题,我不会,看到这个题我开始是拒绝的,虽然题意清晰简单,但是真的不会。限时结束后,学长说这个题是简单的主席树的入门题,我没学过啊。 如果你也没有学过的话,建议看我的另一篇博客,上面有自己的总结和一些博客推荐,就不用自己一个一个找了,点我进去。...

weixin_30715523的博客 173

POJ2104 K-th Number 主席树

题目链接:http://poj.org/problem?id=2104 题目大意:求区间第k小的数。 分析:主席树模板题。 实现代码如下: #include #include #define N 100010 int T[N]; int num[N]; int san[N]; int ls[N*20]; int rs[N*20]; int sum[N*20];

AC_Gibson的专栏 552

poj 2104 K-th Number ———————— 主席树模板

题目链接:poj_2104 K-th Number 首先我们要知道Tree中所存储的东西,Tree.sum是它所代区间中有几个数,Tree.l 是它的左区间所在结点的下标,Tree.r 是它的右区间所在结点的下标。 感觉代码有几个神奇之处: 1. root[i] = root[i-1]; 直接把 [1,i-1] 这课线段树上存储的东西 给了 [1,i] 这颗线段树 , 相当于

leibniz_zhang的博客 444

POJ 2104-K-th Number-主席树模板

Description You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to...

Nothing_but_Fight的博客 310
上一篇: 图形学实验02——————画直线,椭圆,多边形
下一篇: POJ 2761 Feed the dogs——————区间第K大,主席树
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值