题目

传送门:QWQ

分析

主席树的模板,囤着


代码

#include <bits/stdc++.h>
using namespace std;
const int N=1000010;
int ls[N*20], rs[N*20], root[N*20], newp, sum[N*20], a[N*20];inline void insert(int l,int r,int x,int pos,int& cur,int cur1)
{cur=++newp;ls[cur]=ls[cur1]; rs[cur]=rs[cur1]; sum[cur]=sum[cur1];if(l==r) { sum[cur]=x; return; }int mid=l+r>>1;if(pos<=mid) insert(l,mid,x,pos,ls[cur],ls[cur1]);else insert(mid+1,r,x,pos,rs[cur],rs[cur1]);
}inline void build(int l,int r,int& cur)
{cur=++newp;if(l==r) { sum[cur]=a[l]; return; }int mid=l+r>>1;build(l,mid,ls[cur]); build(mid+1,r,rs[cur]);
}inline int query(int l,int r,int pos,int cur)
{if(l==r) return sum[cur];int mid=l+r>>1;if(pos<=mid) return query(l,mid,pos,ls[cur]);else return query(mid+1,r,pos,rs[cur]);
}int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);build(1,n,root[0]);int v1,opt,x,pos;for(int i=1;i<=m;i++){scanf("%d%d",&v1,&opt);root[i]=root[v1];if(opt==1){scanf("%d%d",&pos,&x);insert(1,n,x,pos,root[i],root[i]);}else{scanf("%d",&pos);printf("%d\n",query(1,n,pos,root[v1]));}}return 0;
}

View Code

转载于:https://www.cnblogs.com/noblex/p/8419928.html

【洛谷】P3919 【模板】可持久化线段树(主席树)相关推荐

  1. 洛谷 - P3899 [湖南集训]谈笑风生(dfs序+主席树/二维数点)

    题目链接:点击查看 题目大意:设 TTT 为一棵有根树,我们做如下的定义: 设 aaa 和 bbb 为 TTT 中的两个不同节点.如果 aaa 是 bbb 的祖先,那么称"aaa 比 bbb ...

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

    题目链接 //利用先前的根节点建树 想一下不难写. #include <cstdio> #include <cctype> //#define gc() getchar() # ...

  3. 模板三连击:树状数组+线段树+主席树

    没事儿干,复习模板...... 1.树状数组 本来不想写这个的,但是反正就几分钟就打完了,所以就写了,水AC数. 洛谷 P3374 [模板]树状数组 1 1 #include<cstdio> ...

  4. 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树(二分法)

    题目链接 : 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树 文章目录 前言 一.题目 题目描述 输入格式 输出格式 输入输出样例 说明/提示 二.代码 前言 第一次写博客, ...

  5. 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树

    [题目链接] ybt 1107:校门外的树 ybt 1931:[05NOIP普及组]校门外的树 OpenJudge NOI 1.6 06:校门外的树 洛谷 P1047 [NOIP2005 普及组] 校 ...

  6. 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树

    题目传送门: 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 题目描述 伐木工人 Mirko 需要砍 M 米长的木材.对 Mirko 来说这是很简单的工作,因为他有一个漂亮 ...

  7. 信息学奥赛一本通 1323:【例6.5】活动选择 | 1422:【例题1】活动安排 | 洛谷 P1803 凌乱的yyy / 线段覆盖

    [题目链接] ybt 1323:[例6.5]活动选择 ybt 1422:[例题1]活动安排 洛谷 P1803 凌乱的yyy / 线段覆盖 注意:ybt 1323数据个数最大为 1 0 3 10^3 1 ...

  8. 线段树简单入门 (含普通线段树, zkw线段树, 主席树)

    线段树简单入门 递归版线段树 线段树的定义 线段树, 顾名思义, 就是每个节点表示一个区间. 线段树通常维护一些区间的值, 例如区间和. 比如, 上图 \([2, 5]\) 区间的和, 为以下区间的和 ...

  9. 洛谷P3919可持久化线段树

    P3919 [模板]可持久化数组(可持久化线段树/平衡树) 题目提供者HansBug 站长团 评测方式云端评测 标签O2优化高性能 难度提高+/省选- 时空限制3000ms / 512MB 有了可持久 ...

  10. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

最新文章

  1. python 数据库的Connection、Cursor两大对象
  2. ActiveX(二)
  3. HDU 1108.最小公倍数-辗转相除法
  4. Linux驱动编程 step-by-step (四) 字符设备的注册与设备节点的自动创建
  5. jzoj6800-NOIP2020.9.19模拟spongebob【枚举】
  6. spring安全_Spring安全–幕后
  7. sharding分表后主键_Sharding-JDBC 使用入门和基本配置
  8. 语义分割之原图与mask的可视化
  9. 深入理解计算及系统 Chapter2 学习笔记
  10. 48. 减少 DNS 查找(9)
  11. linux shell 遍历指定目录下的所有文件夹
  12. 计算机课程设计大全,单片机课程设计题目大全计算机软件及应用IT计算机专业资料-单片(10页)-原创力文档...
  13. 数据挖掘期末论文要求
  14. 微信JSAPI支付返回缺少参数total_fee
  15. 一点一滴开始搭建自己的项目框架之支付宝篇 支付宝提现
  16. wps取消英文首字母大写功能
  17. 摄像头各参数的意义_摄像机参数及性能指标浅谈
  18. 使用云祺虚拟机备份软件恢复SANFOR HCI虚拟机
  19. android实现课程表界面
  20. 购买阿里云GPU虚拟化型实例规格族vgn6i抢占式实例并搭建CUDA 11.5和cuDNN 8.3.0

热门文章

  1. 详解使用flask_paginate进行分页
  2. Aop和Filter区别
  3. linux安装phpredis扩展
  4. HDU-2829 Lawrence (DP+四边形不等式优化)
  5. hdu 5616 Jam's balance 正反背包+转换
  6. HDU4421 Bit Magic 【2-sat】
  7. IIS 6.0 401 错误
  8. PhoneGap工作原理及需改进的地方(转)
  9. 我的奔腾B50 MT豪华版 典雅灰 – 验车篇
  10. mysql只能查询出1000条数据_MySQL SELECT语句中只能输出1000行数据的原因