POJ2104 K-th Number(主席树)

【mip-NeRF】使用一组二维图像渲染3D场景视频(mip-NeRF论文复现) 本文对mip-NeRF模型的pytorch实现进行了复现 阅读详情

题意

给出n个数字的数组,和m个询问,每次询问区间[l,r][l,r]中第KK大的数是多少。

题解

主席树经典的例题,详解参见主席树快速入门。
注意需要离散化就好了。

代码

#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
const int nmax = 100000+5;
const int INF = 0x3f3f3f3f;
int n,m,cnt,root[nmax],a[nmax],x,y,k,t;
struct node{int l,r,sum;}T[nmax*20];
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[++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[].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;
}
基于STM32、HAL库的MPX5500DP气压传感器 驱动程序设计 define MPX5500DP_MIN_VOLTAGE 0.2f // 最小输出电压(V)#define MPX5500DP_MAX_VOLTAGE 4.7f // 最大输出电压(V)#define MPX5500DP_MIN_PRESSURE 0.0f // 最小压力(kPa)#define MPX5500DP_MAX_PRESSURE 500.0f // 最大压力(kPa)* @brief 读取压力值(kPa)// 计算压力值 (线性转换) 阅读详情

相关推荐

Zabbix Trigger actions访问出现500

本篇博客详细介绍了Zabbix访问'Trigger actions'出现的错误状况,访问界面出现500,并提供了解决方案。

格子的博客 562

【主席树】POJ2104 K-th Number

K-th Number 一道典型的主席树模板题。 题面如下: DescriptionYou 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

linkfqy 535

AI Agent在智能投研中的实战:多智能体信息整合与策略生成

本文将带你从0到1完整搭建一套基于LangChain和AutoGen的多智能体AI投研系统首先,我们会一起梳理智能投研的核心痛点、金融数据的独特性,以及为什么传统AI Agent,尤其是多智能体协同架构,是破局的唯一最优解;RAG检索增强生成(但这次是金融领域定制化的,包括向量检索+时序数据检索+知识图谱检索的“三元检索增强”)、AutoGen多智能体协同框架。

软件工程实践的博客 381

poj 2104 K-th Number 主席树+超级详细解释

传送门:K-th Number题目大意:给出一段数列,让你求[L,R]区间内第几大的数字!在这里先介绍一下主席树! 如果想了解什么是主席树,就先要知道线段树,主席树就是n棵线段树,因为线段树只能维护最大值或者最小值,要想求出第二大的数字怎么办呢?两颗线段树呗!好,那么第n大呢,就可以构造n棵线段树,这样的内存是显然会爆掉的,那么怎么办呢?因为每一次更新都是更新的是从叶子节点到根节点的一条路,路的长

woshinannan的专栏 5265

【大模型微调】魔搭社区GPU进行LLaMA-Factory微调大模型自我认知

本教程介绍如何使用魔搭社区GPU资源和LLaMA-Factory工具进行大模型微调。主要内容包括环境配置、工具安装、模型训练和效果评估。通过LoRA算法进行自我认知微调,详细说明了从数据准备到模型导出的完整流程,并提供了参数调优和显存管理等实用技巧,帮助读者快速掌握大模型定制化训练方法。

LChuck的博客 2924

STM32 bootloader程序跳转到APP卡死在B_ENDP_ALIGN,原因:有未处理的中断。解决方法:重启系统

Bootloader和App中都用到了串口,定时器等,所以从Bootloader跳转App后未卡死。 后来写的另一个App里没有用到这几个外设,然后就是无限的卡死。 现在Bootloader中跳转App之前将已打开的外设关掉,再跳转至App就不再出现卡死。  if(((*(vu32*)(APPLICATION_ADDRESS+4))&0xFF000000)==0x08000000) {

jingzhixingyun的博客 7920

最详细的讲解,让你一次学会主席树

好久以前就想学习主席树这个黑科技,一直觉得很难,然后平时上课也没有什么好的时间,所以一直搁置到现在,最近遇到了一个比较简单,比较经典的问题,求区间第k小,比如poj2104,没有更新操作,只有查询操作,因为最近一直在学习分块思想,既然没有更新操作,我觉得可以用分块搞一下,但是一直tle,我的大致思想是把原序列分为为若干块,然后对每一块进行块内排序,每次 查询操作就是二分区间第k小元素设为x,jud...

creatorx的博客 3万+

小程序强制更新避坑指南:手把手教你实现无缝升级

本文详细解析小程序强制更新的实现方法,重点介绍wx.getUpdateManager API的使用技巧,帮助开发者规避冷热启动机制下的版本管理陷阱。通过实战案例展示如何设计多级更新提示策略,确保用户无缝升级,提升小程序版本更新率。

star的博客 280

poj2104 k-th number 主席树入门讲解

定义:主席树是一种可持久化的线段树 又叫函数式线段树 刚开始学是不是觉得很蒙逼啊 其实我也是  主席树说简单了 就是保留你每一步操作完成之后的线段树 然后有可加减性 呃 。。。 这么说好像还是有点生涩 那么就拿poj2104来举例子吧 慢慢讲我觉得会很好的 题意就是给你一个100000长度的数字 然后100000次询问[L,R]之间第k大的数字是多少 这个很容易

beating_spark 1260

InfiniBand 与 RoCE 协议介绍

InfiniBand 是高性能互联的 “标杆”,以极致的低延迟、高可靠性适用于对性能要求苛刻的场景(如超算、大规模 AI 训练);而 RoCE 通过以太网实现 RDMA,平衡了性能与成本,成为数据中心和云计算的主流选择。两者均基于 RDMA 技术,核心目标是解决传统网络的 “CPU 瓶颈” 和 “延迟瓶颈”,推动高性能计算和分布式系统的发展。

jundao1997的专栏 713

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

Robot_PLC_HMI_Automation 3293

hdu 5412 CRB and Queries(动态区间第k大值,区间能修改)(整体二分,树状数组套平衡树,线段树套treap)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5412 解题思路: 官方题解: In this problem, we can use BIT and Treap. We use BIT for coding skill and each element of BIT is Treap. First, for eac

piaocoder 2518

PS射击游戏射线检测优化:原理、工程与全链路高性能实现

射线池:减少GC,提升批量检测效率。分层检测:先粗后细,远距离射击高效判定。批量检测:并行处理,适合大量射线场景。空间结构:进一步加速大场景检测。下面继续深入射线检测优化,补充更多实用细节和进阶技巧,包括空间分区加速、射线检测多线程/异步化、射线合并与分帧、射线池通用模板、常见性能陷阱与调优建议等。对于极端性能需求,可自定义轻量级物理系统,仅检测关键对象(如玩家、子弹),跳过复杂物理引擎。结合AABB、OBB、球体等简单碰撞体,射线-包围体检测极快。空间分区+分层检测是大场景射线优化核心。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 434

kyeremal-poj2104-K-th Number-主席树

poj2104-K-th Number K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 31790   Accepted: 9838 Case Time Limit: 2000MS Description You are w

kyeremal的专栏 862

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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的博客 231

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

L_X_ 292

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

【poj2104】K-th Number 主席树

DescriptionYou 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 r

DQS的树洞 730

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 structur...

dataxiang6224的博客 155

K-th Number Poj - 2104 主席树

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

weixin_30715523的博客 173

[poj2104]K-th Number 主席树

太弱了

Unlimited Code Works 358

POJ2104 HDU2665 K-th Number【主席树】

K−th NumberK-th\ NumberK−th Number 之前在《挑战》上看到求区间第K大的办法是用分块做的,但是一直TLE过不了,看讨论里都是主席树,然后觉得很难就一直没学,今天终于花了一晚上搞懂了静态主席树是什么了,其实也不是特别难懂。 权值线段树和普通线段树差不多,权值线段树每个节点表示的是[L,R]之间各个数出现的次数。 主席树其实就是建立在权值线段树结构上...

qq_43710979的博客 264

POJ 2104 K-th Number(主席树)

题目链接:点击打开链接 细节参见代码: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define Max(a,b) ((a)>(b)?(a

AC_Arthur的专栏 4071

POJ 2104 K-th Number [主席树]

K-th Number Time Limit: 20000MS Memory Limit: 65536KB 64bit IO Format: %lld & %lluDescription You are working for Macrohard company in data structures department. After failing your previous

C'est la vie. 494

POJ2104 K-th Number【主席树】

题意:给一段序列,还有一些询问,查询l-r中的第k大的数是什么 主席树求第K大的板子,维护前缀和,然后作差二分找第k大就是 #include #include #include using namespace std; const int MAXN=100010; int tot,a[MAXN],n; int vec[MAXN],idx; int c[MAXN*30],lson[MAXN*30

eeeaaaaa的专栏 504

【主席树】poj 2104 K-th Number

这道题目要求我们求出一个区间内的第k大,静态的 首先可以考虑建立n棵权值线段树,第i棵线段树[a,b]记录数组1-i的区间中,数字a-b一共出现了多少次,也就是说这棵线段树的叶子节点的位置表示的是这个数字在1-i这个区间出现的次数 如果要求区间[a,b]内的第k大,我们可以利用前缀和的思想,将第b棵线段树和第a-1棵线段树相减,那么就可以得到了[a,b]这个区间内的权值线段树,然后就可以按照线段树的思想,去query第k的位置就可以了 然而,我们需要开n棵线段树,显然空间消耗过大 我们通过观察线段树

andyc_03的博客 187
上一篇: 【算法学习】主席树入门
下一篇: 【滚动训练】LOJ 6280. 数列分块入门 4(分块)
pengwill97
博客等级 码龄10年 324粉丝 496原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值