Bzoj3196 二逼平衡树

小程序结合Three.js与gsap:打造流畅3D动画的完整指南 本文详细介绍了如何在小程序中整合Three.js与GSAP动画库,打造流畅的3D动画效果。通过从环境搭建、基础场景创建到模型加载与复杂动画编排的完整指南,帮助开发者克服小程序性能限制,实现如商品360度展示等沉浸式交互体验,提升产品视觉吸引力。 阅读详情
您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:
1.查询k在区间内的排名
2.查询区间内排名为k的值
3.修改某一位值上的数值
4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)
5.查询k在区间内的后继(后继定义为大于x,且最小的数)

额,这个题,看了一眼就知道是线段树套线段树啦,所以随手糊一发

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 50010
#define gR 0,10000000,c[x].rt
using namespace std;
int t=0,n,m,v[50010];
struct dn{ int l,r,s; dn(){l=r=s=0;} } s[11000010];
struct Segment{
	int rt; Segment(){ rt=0; }
	void insert(int l,int r,int& x,int k){
		if(!x) x=++t;
		if(l==r){ ++s[x].s; return; }
		int m=l+r>>1;++s[x].s;
		if(k<=m) insert(l,m,s[x].l,k);
		  else insert(m+1,r,s[x].r,k);
	}
	void remove(int l,int r,int& x,int k){
		if(l==r){ --s[x].s; return; }
		int m=l+r>>1; --s[x].s;
		if(k<=m) remove(l,m,s[x].l,k);
		  else remove(m+1,r,s[x].r,k);
	}
	int gMax(int l,int r,int x){
		if(l==r) return l;
		int m=l+r>>1;
		if(s[s[x].r].s) return gMax(m+1,r,s[x].r);
		else return gMax(l,m,s[x].l);
	}
	int gMin(int l,int r,int x){
		if(l==r) return l;
		int m=l+r>>1;
		if(s[s[x].l].s) return gMin(l,m,s[x].l);
		else return gMin(m+1,r,s[x].r);
	}
	int gRank(int l,int r,int x,int k){
		if(l==r) return 0;
		int m=l+r>>1;
		if(k<=m) return gRank(l,m,s[x].l,k);
		else return s[s[x].l].s+gRank(m+1,r,s[x].r,k);
	}
	int	gPre(int l,int r,int x,int k){
		if(l==r) return k;
		int m=l+r>>1;
		if(k<=m) return gPre(l,m,s[x].l,k);
		else {
			int p=gPre(m+1,r,s[x].r,k);
			if(p==k && s[s[x].l].s) return gMax(l,m,s[x].l);
			else return p;
		}
	}
	int gSuc(int l,int r,int x,int k){
		if(l==r) return k;
		int m=l+r>>1;
		if(m<k) return gSuc(m+1,r,s[x].r,k);
		else {
			int p=gSuc(l,m,s[x].l,k);
			if(p==k && s[s[x].r].s) return gMin(m+1,r,s[x].r);
			else return p;
		}
	}
} c[200010];
void modify(int l,int r,int x,int p,int k){
	c[x].remove(gR,v[p]); c[x].insert(gR,k);
	if(l==r) return;
	int m=l+r>>1;
	if(p<=m) modify(l,m,x<<1,p,k);
	else modify(m+1,r,x<<1|1,p,k);
}
int getrank(int l,int r,int x,int L,int R,int k){
	if(L<=l && r<=R) return c[x].gRank(gR,k);
	int m=l+r>>1,S=0;
	if(L<=m) S+=getrank(l,m,x<<1,L,R,k);
	if(m<R) S+=getrank(m+1,r,x<<1|1,L,R,k);
	return S;
}
int getpre(int l,int r,int x,int L,int R,int k){
	if(L<=l && r<=R){
		int p=c[x].gPre(gR,k);
		return p==k?-1<<30:p;
	}
	int m=l+r>>1,S=-1<<30;
	if(L<=m) S=max(S,getpre(l,m,x<<1,L,R,k));
	if(m<R) S=max(S,getpre(m+1,r,x<<1|1,L,R,k));
	return S;
}
int getsuc(int l,int r,int x,int L,int R,int k){
	if(L<=l && r<=R){
		int p=c[x].gSuc(gR,k);
		return p==k?1<<30:p;
	}
	int m=l+r>>1,S=1<<30;
	if(L<=m) S=min(S,getsuc(l,m,x<<1,L,R,k));
	if(m<R) S=min(S,getsuc(m+1,r,x<<1|1,L,R,k));
	return S;
}
int gKth(int l,int r,int k){
	int L=0,R=1e8;
	for(int m;L<R;){
		m=L+R+1>>1;
		if(getrank(1,n,1,l,r,m)+1<=k) L=m;
		else R=m-1;
	}
	return L;
}
void build(int l,int r,int x){
	for(int i=l;i<=r;++i) c[x].insert(gR,v[i]);
	if(l==r) return;
	int m=l+r>>1;
	build(l,m,x<<1);
	build(m+1,r,x<<1|1);
}
int main(){
	freopen("1.in","r",stdin);
	freopen("1.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i) scanf("%d",v+i);
	build(1,n,1);
	for(int o,a,b,c;m--;){
		scanf("%d%d%d",&o,&a,&b);
		if(o^3) scanf("%d",&c);
		if(o==1) printf("%d\n",getrank(1,n,1,a,b,c)+1);
		else if(o==2) printf("%d\n",gKth(a,b,c));
		else if(o==3) modify(1,n,1,a,b),v[a]=b;
		else if(o==4) printf("%d\n",getpre(1,n,1,a,b,c));
		else if(o==5) printf("%d\n",getsuc(1,n,1,a,b,c));
	}
}
无比优美,结果re了,跑到tyvj上面搞个数据发现空间被卡了。。。。

正解是线段树套(treap,splay,替罪羊。。。)

4、海洋哺乳动物运动能量学:潜水与生存的奥秘 本文深入探讨了海洋哺乳动物在潜水与运动中的能量消耗机制,涵盖其生理反应、代谢成本、节能行为策略及测量方法。通过分析不同物种的能量利用特点,揭示了它们如何在极端水下环境中维持能量平衡,并讨论了该研究在保护生物学、生态系统动态和动物健康管理中的实际意义。文章还展望了未来多学科交叉、长期监测及应对环境变化的研究方向,为理解海洋哺乳动物的生存奥秘提供了系统性视角。 阅读详情

相关推荐

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取

在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。

qq_36071928的博客 1042

【树套树】【BZOJ3196】二逼平衡树

【题目描述】 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询 x在区间内的排名; 2.查询区间内排名为 k 的值; 3.修改某一位置上的数值; 4.查询 x 在区间内的前趋(前趋定义为小于 x,且最大的数); 5.查询 x 在区间内的后继(后继定义为大于 x,且最小的数)。 【输入格式】 第一行两个数 n,m,表示长度为 n 的有序序列和 m 个...

Dy_Dream的博客 419

SAP PP模块 MRP配置实战:5步完成工厂级物料需求计划激活

本文详细介绍了SAP PP模块中物料需求计划(MRP)的工厂级配置实战,通过5个关键步骤从基础环境准备到最终激活。内容涵盖SPRO后台配置、MRP控制者定义、主数据设置及核心参数调整,帮助顾问快速掌握MRP配置清单的完整流程,确保物料需求计划的高效运行。

weixin_30431445的博客 341

[TYVJ1730]二逼平衡树解题报告

【题目描述】 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 【输入格式】 第一行两个数 n,m 表示长度为n的有序序列和m个操作 第二行

Ostmbh的博客 520

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 325

车载LIN总线避坑指南:主从节点通信失败的5个常见原因及解决方案

本文深度解析车载LIN总线主从节点通信失败的五大常见原因,涵盖物理层信号异常、调度表冲突、LDF配置错误、节点状态机缺陷及环境干扰。重点剖析了LDF文件配置不一致、波特率不匹配等关键问题,并提供了从示波器波形分析到软件配置检查的完整实战排查路径,帮助工程师高效定位并解决LIN通信故障。

g9h0i1的博客 1249

[题解] BZOJ 3223 文艺平衡树

BZOJ 3223 文艺平衡树 题目描述 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 最开始所有元素都是0。 输入描述 Input Description 第一行为n,m n表示初始序列有n个数,这个序列依

Chlience的博客 696

高速窄脉冲峰值保持设计

一、目的 在激光探测领域,探测器发出的高速窄脉冲,单片机AD进行采样,很难捕捉到窄脉冲的幅值,即使使用高速AD进行采样,也存在一定的难度。因此,本方案设计了一种高速窄脉冲峰值保持电路,有助于单片机AD采样能很好的捕捉到脉冲幅值。 二、方案分析与比较 峰值保持器一般分为两种:电压型和跨导型。 方案一:电压型峰值保持器,由电压型运放、二极管、保持电容、缓冲器组成,优点是元件成本低,缺点是峰值保持存在过...

weixin_43184208的博客 9289

bzoj3223(文艺平衡树 splay区间翻转模板)

题目 思路: 以下标建立一颗平衡树。splay之后序列顺序并不改变,就像splay之后不改变数的大小关系。翻转区间[l,r]先把 l-1 翻转到根部,然后把r+1翻转到根部的右儿子。此时根部右儿子的左儿子就是区间[l,r]。此时对这个区间tag[ch[ch[root][1]][0]]^=1; 每次route的时候需要pushdown(f[x]),pushdown(x). 将l-1旋转到根部的操作是...

qq_42576687的博客 293

MTK Meta ISP 工具使用技巧与参数读取路径全解析

在联发科(MediaTek, MTK)平台上进行相机图像调试时,Meta ISP 工具是连接 PC 与设备进行参数调整、寄存器读取和图像输出的重要工具。本文以实战角度出发,系统梳理 Meta ISP 的使用流程、关键模块功能、典型调试技巧与参数读取路径,结合最新版平台(如MTK Genio/Dimensity 系列)架构,帮助工程师掌握联发科图像调优的核心流程。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1147

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8251

BZOJ3196 & 洛谷3380:二逼平衡树——题解

https://www.lydsy.com/JudgeOnline/problem.php?id=3196 https://www.luogu.org/problemnew/show/P3380 (题面用洛谷的) 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的...

weixin_33871366的博客 203

Oracle EBS(R12+)通过Multi-Org 多组织架构、Multi-Ledger 多账簿、SLA 子分类账会计、多币种引擎、多会计政策并行五大核心能力,为跨国企业提供一体化、自动化、合规的

Oracle EBS(R12+)提供全球会计核算解决方案,通过Multi-Org多组织架构实现跨国集团数据隔离与共享,支持四层组织结构(业务组→法律实体→经营单位→库存组织)。Multi-Ledger多账簿功能允许一笔业务多准则自动核算,包含主账簿、辅助账簿和报告币种。系统内置多币种处理引擎,覆盖全流程货币业务,支持自动重估、再计量和折算。通过SLA子分类账会计实现多会计政策并行处理,满足不同国家会计准则和税制要求。该方案可同时支持本地法定、集团合并及管理分析需求,实现全球财务数据集中管理,提升合规性和运营

金牌架构师 553

BZOJ3196 二逼平衡树

目录 BZOJ3196 二逼平衡树 题解 code BZOJ3196 二逼平衡树 题目传送门 题解 比较经典的一道树套树题目了吧,然而先做了带插入区间第\(K\)小值之后,这题就比较简单了。外层用线段树,里面套一棵平衡树,这里用了\(Splay\)。不过需要注意的是,查询排...

dieyi9889的博客 162

NTscan扫描工具

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

bzoj3196: Tyvj 1730 二逼平衡树

题面在这里我去树套树真**丧心病狂… 神tm6KB代码,代码总长233行也是醉了。 做法: 额没什么好说的就是树套树的裸题。。自行体会。/************************************************************* Problem: bzoj 3196 Tyvj 1730 二逼平衡树 User: fengyuan Lan

juruo? juruo! 318

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【BZOJ3196】Tyvj 1730 二逼平衡树 线段树套Treap

【BZOJ3196】Tyvj 1730 二逼平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数) Input 第一...

aodanchui1057的博客 137

蓝牙模块HM-10手册

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

[bzoj 3196] 二逼平衡树

网上各种方法都有了。。。。 去年学主席树的时候准备用树状数组套主席树水过,结果发现空间比较吃紧,就一直放在那边没敢碰。 前几天在那出来时——嗯,似乎是裸的线段树套平衡树(虽然我没有写过)。 于是就这样码下去了。。。。。

Zeyu_King的专栏 904

bzoj3196Tyvj1730二逼平衡树

bzoj3196Tyvj1730二逼平衡树 题意: 维护一个数列,操作:查询k在区间内的排名、查询区间内排名为k的值3、修改某一位上的数值、查询k在区间内的前驱(前驱定义为小于x,且最大的数)、查询k在区间内的后继(后继定义为大于x,且最小的数) 题解: 线段树套treap,我写了一个星期QAQ第一、三个操作直接搞;第二个操作就二分那个值,然后查它在区间内的排名;第四、五个操作就当查询值≤...

weixin_34247299的博客 77

bzoj3196 tyvj1730 二逼平衡树

线段树套平衡树

AaronPolaris 2237

【BZOJ3196】二逼平衡树(树状数组,线段树)

【BZOJ3196】二逼平衡树(树状数组,线段树) 题面 BZOJ题面 题解 如果不存在区间修改操作: 搞一个权值线段树 区间第K大--->直接在线段树上二分 某个数第几大--->查询一下区间的size和 某个数的前缀--->先查一下他是区间第几大,再求他-1大 某个数的后缀--->和上面那个有区别吗??? 现在有了区间修改操作 多搞一个树状数组 套在一起就好啦 暴力开点开...

weixin_30384217的博客 136

Bzoj 3196 Tyvj 1730 二逼平衡树

3196: Tyvj 1730 二逼平衡树 >原题链接< Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且...

dianjia2824的博客 198

[BZOJ3196]Tyvj 1730 二逼平衡树

树套树 树状数组套线段树

srand(time(0)) 518

BZOJ 3196 二逼平衡树

线段树套平衡树 上次spaly头铁卡不过去。。leaf tree轻轻松松~ #include <bits/stdc++.h> #define INF 2147483647 #define full(a, b) memset(a, b, sizeof a) #define FAST_IO ios::sync_with_stdio(false), cin.tie(0), cout.tie(...

weixin_33895516的博客 145

BZOJ3196:二逼平衡树

浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 浅谈\(Splay\):https://www.cnblogs.com/AKMer/p/9979592.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 树套树模板题,外层用一个位置线段树,内层用一...

aga28832的博客 214

【bzoj3196】二逼平衡树【树套树】【线段树】【平衡树】【呵呵】

…… 我承认我写change函数时确实213了- - a[pos]应当在最后被修改,可我却忘了…… 第一次交上去的时候爆了数组,WA了…… 然后把数组开大,交上去,MLE了…… 现在我证明长度为n的序列,他的平衡树节点数组只要开到(log(2,f(n))+1)*f(n)就绝对不会爆。 f(n)是指比n大的最小的2的幂,比如f(65535)=65536,f(65537)=2^17. 证

ZMOIYNLP的专栏 894

[BZOJ 3196] 二逼平衡树

[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3196 [算法] 树套树即可 笔者的这份代码使用的是线段树套伸展树 时间复杂度 : O(NlogN ^ 3) [代码] #include<bits/stdc++....

149
上一篇: Jzoj4715 树上路径
下一篇: Jzoj4721 LCS
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值