【洛谷】P3919 【模板】可持久化线段树(主席树)
题目
传送门:QWQ
分析
主席树的模板,囤着
代码
#include <bits/stdc++.h>
using namespace std;
const int N=;
int ls[N*], rs[N*], root[N*], newp, sum[N*], a[N*]; 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>>;
if(pos<=mid) insert(l,mid,x,pos,ls[cur],ls[cur1]);
else insert(mid+,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>>;
build(l,mid,ls[cur]); build(mid+,r,rs[cur]);
} inline int query(int l,int r,int pos,int cur)
{
if(l==r) return sum[cur];
int mid=l+r>>;
if(pos<=mid) return query(l,mid,pos,ls[cur]);
else return query(mid+,r,pos,rs[cur]);
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
build(,n,root[]); int v1,opt,x,pos;
for(int i=;i<=m;i++)
{
scanf("%d%d",&v1,&opt);
root[i]=root[v1];
if(opt==){
scanf("%d%d",&pos,&x);
insert(,n,x,pos,root[i],root[i]);
}
else{
scanf("%d",&pos);
printf("%d\n",query(,n,pos,root[v1]));
}
}
return ;
}
【洛谷】P3919 【模板】可持久化线段树(主席树)的更多相关文章
- 洛谷P3834 [模板]可持久化线段树1(主席树) [主席树]
题目传送门 可持久化线段树1(主席树) 题目背景 这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定 ...
- 洛谷.3834.[模板]可持久化线段树(主席树 静态区间第k小)
题目链接 //离散化后范围1~cnt不要错 #include<cstdio> #include<cctype> #include<algorithm> //#def ...
- 【洛谷 P3834】 可持久化线段树1(主席树)
题目链接 主席树=可持久化权值线段树. 如果你不会可持久化线段树,请右转 如果你不会权值线段树,请自行脑补,就是线段树维护值域里有多少个数出现. 可持久化线段树是支持查询历史版本的. 我们对每个数都进 ...
- 洛谷.3835.[模板]可持久化平衡树(fhq treap)
题目链接 对每次Merge(),Split()时产生的节点都复制一份(其实和主席树一样).时间空间复杂度都为O(qlogq).(应该更大些 因为rand()?内存真的爆炸..) 对于无修改的操作实际上 ...
- 洛谷P2633 Count on a tree(主席树,倍增LCA)
洛谷题目传送门 题目大意 就是给你一棵树,每个点都有点权,每次任意询问两点间路径上点权第k小的值(强制在线). 思路分析 第k小......又是主席树了.但这次变成树了,无法直接维护前缀和. 又是树上 ...
- 洛谷P2633 Count on a tree(主席树,倍增LCA,树上差分)
洛谷题目传送门 题目大意 就是给你一棵树,每个点都有点权,每次任意询问两点间路径上点权第k小的值(强制在线). 思路分析 第k小......又是主席树了.但这次变成树了,无法直接维护前缀和. 又是树上 ...
- 2018.07.01洛谷P2617 Dynamic Rankings(带修主席树)
P2617 Dynamic Rankings 题目描述 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i ...
- 【洛谷4587】 [FJOI2016]神秘数(主席树)
传送门 BZOJ 然而是权限题 洛谷 Solution 发现题目给出的一些规律,emm,如果我们新凑出来的一个数,那么后面一个数一定是\(sum+1\). 于是就可以主席树随便维护了! 代码实现 #i ...
- 洛谷P2633/bzoj2588 Count on a tree (主席树)
洛谷P2633/bzoj2588 Count on a tree 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K ...
- 【洛谷 P3168】 [CQOI2015]任务查询系统(主席树)
题目链接 被自己的sb错误调到自闭.. 主席树的进阶应用. 把\(P_i\)离散化一下,得到每个\(P_i\)的排名,然后建一棵维护\(m\)个位置的主席树,每个结点记录区间总和和正在进行的任务数. ...
随机推荐
- 安装spring报错:Cannot complete the install because of a conflicting dependency.
问题: 在Eclipse里安装Spring插件,help->install new software用端点安装,说是出现软件依赖错误报错如下: Cannot complete the insta ...
- web前端开发中的命名规范
(一)主体 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中: ...
- 重写alert 方法(我胡汉三又回来了)
window.alert = function (txt) { var shield = document.createElement("DIV"); shield.id = &q ...
- 关于Instruments-Leaks工具的归纳总结
前言: 本篇文章,在于学习,我把别人的一些感觉好的文章汇总成了一篇,亲自实现了一下,留用于今后学习资料. 文章脉络: 文章脉络: 一.内存优化 简介:Objective_C 有3种内存管理方法, 它们 ...
- runtime 知识点
demo https://github.com/ZOYOOPlus/runtime2 // // ViewController.m // runtime // Copyright © 2017年 ...
- Mininet python代码创建拓扑、交互式界面创建主机、交换机
python代码创建拓扑: from mininet.net importMininet net =Mininet() # Creating nodes in the network. c ...
- Web框架Django
Django是一个开放源代码的Web应用框架,由Python写成. 1. Ubuntu Django安装: pip install django 2. django-admin.py创建一个项目 dj ...
- libcurl使用认证证书 https认证
在server.xml中增加下面的内容: ciphers="SSL_RSA_WITH_RC4_128_SHA" 下面是libcurl 的测试代码: #include <std ...
- 《PyQt5 快速开发与实战》 第九章代码Bug修正 DataGrid.py 最后一页下翻页 仍可点击的错误
# -*- coding: utf-8 -*- import sys import re from PyQt5.QtWidgets import (QWidget , QHBoxLayout , QV ...
- MySQL基础(《MySQL必知必会》简单总结)
使用MySQL # 选择数据库 USE database_name; # 显示数据库 SHOW DATABASES; # 显示当前数据库的表 SHOW TABLES; # 显示特定表有哪些列 SHOW ...