洛谷.3919.[模板]可持久化数组(可持久化线段树/平衡树)

题目链接

//利用先前的根节点建树 想一下不难写。
#include <cstdio>
#include <cctype>
//#define gc() getchar()
#define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF:*SS++)
const int N=1e6+5,MAXIN=2e6;int n,q,root[N],A[N];
char IN[MAXIN],*SS=IN,*TT=IN;
struct Seg_Tree
{#define lson son[x][0]#define rson son[x][1]int tot,val[N*21],son[N*21][2];void Build(int &x,int l,int r){x=++tot;if(l==r) val[x]=A[l];else{int m=l+r>>1;Build(lson,l,m), Build(rson,m+1,r);}}void Modify(int x,int &y,int l,int r,int p,int v){y=++tot;if(l==r) val[y]=v;else{int m=l+r>>1;if(p<=m) son[y][1]=rson, Modify(lson,son[y][0],l,m,p,v);else son[y][0]=lson, Modify(rson,son[y][1],m+1,r,p,v);}}int Query(int x,int l,int r,int p){if(l==r) return val[x];if(p<=(l+r>>1)) return Query(lson,l,l+r>>1,p);return Query(rson,(l+r>>1)+1,r,p);}
}t;
inline int read()
{int now=0,f=1;register char c=gc();for(;!isdigit(c);c=gc()) if(c=='-') f=-1;for(;isdigit(c);now=now*10+c-'0',c=gc());return now*f;
}int main()
{n=read(),q=read();for(int i=1; i<=n; ++i) A[i]=read();t.Build(root[0],1,n);for(int opt,ver,p,i=1; i<=q; ++i){ver=read(), opt=read(), p=read();if(opt==1) t.Modify(root[ver],root[i],1,n,p,read());else root[i]=root[ver], printf("%d\n",t.Query(root[i],1,n,p));}return 0;
}

转载于:https://www.cnblogs.com/SovietPower/p/8641192.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

anaconda下安装新包一直报错(‘parse() got an unexpected keyword argument 'transport_encoding'’)...

pip没有更新 解决方案&#xff1a;在prompt上输入 “ conda install pip ”转载于:https://www.cnblogs.com/Li---Chao/p/8641299.html

NFS服务端安装与配置

一、NFS介绍 NFS数据传输基于PRC协议&#xff0c;用于在网络上共享存储。 二、服务端配置NFS 1、服务端安装包 nfs-utils和rpcbind,使用yum安装nfs-utils时会一起安装rpcbind. yum install -y nfs-utils 2、创建配置文件 vim /etc/exports&#xff0c;写入以下内容&#xff1a…

HashMap的结构及源码分析

最近朋友说研究并发可以先从HashMap源码分析开始&#xff0c;所以就研究了下HashMap的结构和源码。 先从HashMap的结构开始。 我们都知道HashMap的用来存储key,value键值对数据的。既然是存储数据的&#xff0c;我们就得想一下数据存储的数据结构信息有哪些&#xff0c;我们所知…

【前端统计图】echarts实现单条折线图

五分钟上手&#xff1a;图片.png<!DOCTYPE html> <html><head><meta charset"utf-8"><title>五分钟上手之折线图</title><!-- 引入 echarts.js --><script src"js/echarts.min.js"></script><sc…

JAVA高并发的三种实现

提到锁&#xff0c;大家肯定想到的是sychronized关键字。是用它可以解决一切并发问题&#xff0c;但是&#xff0c;对于系统吞吐量要求更高的话&#xff0c;我们这提供几个小技巧。帮助大家减小锁颗粒度&#xff0c;提高并发能力。 初级技巧-乐观锁 乐观锁使用的场景是&#…

信数金服:决策模型的迭代

在《业务规则的生命周期管理》中&#xff0c;Carole-Ann指出了版本管理中的可追溯和回退功能是十分有效的。她还提到了发布版本的强大功能&#xff0c;基本上&#xff0c;它包括了给定时间点上的各条规则&#xff08;或任何类型的项目&#xff09;的版本&#xff0c;有效地提供…

关于MyBatis的缓存

我们大概都有所了解MyBatis的缓存级别分为两种&#xff0c;一级缓存和二级缓存。 MyBatis的一级缓存是SqlSession级别的缓存&#xff0c;二级缓存是Mapper级别的缓存。当我们查询数据时&#xff0c;使用的是同一个sqlSession时&#xff0c;那我们使用的是一级缓存&#xff0c;…

使用 js 设置组合快捷键,支持多个组合键定义,还支持 React

╭┈┈╮ ╭┈┈╮ ╭┈┈╮ ┆ ├┈┈..┈┈┈┈┈.┆ └┈╮┆ ├┈┈..┈┈┈┈┈..┈┈.┈┈..┈┈┈┈┈. ┆ ┆┆ □ ┆┆ ┈┤┆ < ┆ -__┘┆ ┆ ┆┆__ ┈┈┤ ╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰┈┈┈┈╯╰┈┈┴┈┈╯╰┈┈┈┈┈╯╰…

进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) day38

进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) 锁 —— multiprocess.Lock 通过刚刚的学习&#xff0c;我们千方百计实现了程序的异步&#xff0c;让多个任务可以同时在几个进程中并发处理&#xff0c;他们之间的运行没有顺序&#xff0c;一旦开启…

关于磁盘爆满异常(Linux下已经删除文件继续占用空间问题)

今天一个同事跟我说磁盘爆了&#xff0c;df -h 查看磁盘使用率显示确实是100%&#xff0c;但是我du -sh *查看磁盘使用情况时&#xff0c;又发现磁盘情况根本不可能占满。磁盘是40G&#xff0c;使用顶多在10G&#xff0c;那还有的30多G去哪了呢。 因为之前出现过磁盘占满的情况…

Python杨辉三角

杨辉三角&#xff0c;是二项式系数在三角形中的一种几何排列&#xff0c;在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲&#xff0c;帕斯卡&#xff08;1623----1662&#xff09;在1654年发现这一规律&#xff0c;所以这个表又叫做帕斯卡三角形。帕斯卡…

SSM简单整合

SSM整合&#xff0c;SpringMVC,Spring,MyBatis的配置文件整合。 1.Spring和MyBatis的整合&#xff08;applicationContext.xml&#xff09;。 需要spring约束。 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springf…

The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized 偶然遇到的mysql时区问题

因为换了个电脑用&#xff0c;运行时报了个很少见的异常。如下&#xff1a; Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the …

可持续字典树 Perfect Security

题目链接 题目大意:给你两个序列&#xff0c;第二个序列可以任意进行排列变换&#xff0c;然后由这两个序列一一异或得到答案序列&#xff0c;要求答案序列的字典序最小。 可持续字典树与第K大可持续线段树的区别主要在于每个节点上 &#xff0c;它多了一个记录值。 因为线段树…

Docker容器的简单操作及应用部署

1.什么是虚拟化 虚拟化&#xff08;Virtualization&#xff09;是一种资源管理技术 &#xff0c;虚拟化技术种类很多&#xff0c;例如&#xff1a;软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等 。 2.什么是Docker Docker 是一个…

PHP 数据库连接池实现(转)

转自https://blog.csdn.net/Marksinoberg/article/details/53857511 摘要xml 读取配置文件 简易方式常规方式PHP解析XML 配置文件解析数据库连接池测试 申请过多时拒绝请求已满后拒绝放入总结此文着实无聊&#xff0c;不要浪费时间往下看啦 摘要 之前总是以脚本面向过程的方式…

Jenkins的安装和卸载(转载)

今天安装jenkins后因为网路问题一开始没自动安装插件&#xff0c;后来想重新卸载安装一遍jenkins。找了一会才找到一篇,jenkins的卸载&#xff08;linux下&#xff0c;已尝试可以&#xff09; https://blog.csdn.net/chunlongyuan/article/details/79243143 最后jenkins服务仍…

codeforces 453C Little Pony and Summer Sun Celebration

codeforces 453C Little Pony and Summer Sun Celebration 这道题很有意思&#xff0c;虽然网上题解很多了&#xff0c;但是我还是想存档一下我的理解。 题意可以这样转换&#xff1a;初始所有点有 \(01\) 状态&#xff0c;每经过一次状态就翻转&#xff0c;求一条路径使得最后…

MongoDB无法注册windows服务问题解决 Error connecting to the Service Control Manager: 拒绝访问 Mongodb M

发现在mongodb.log里出现 2017-07-07T17:01:55.3390800 I CONTROL [main] Error connecting to the Service Control Manager: 拒绝访问。 (5) 错误 1.检查mongodb.conf配置内容是否有误. 2.cmd需要以管理员方式启动(c盘system32下cmd.exe). 3.执行mongod.exe --bind_ip 1…

保存图片验证码到redis数据库

def get_image_code(image_code_id): # 1 实用工具类生成验证码 name, text, image_data captcha.generate_captcha() #将验证码的数据和编号存储到 redis 中 try: #redis_store.set() 设置数据 #redis_store.expires()设置有效期 #setex&#xff1a;设置数据的同时设置有效期…