首页 > TAG信息列表 > P3834

[P3834]【模板】可持久化线段树 2(主席树)

复习一下主席树板子 #include <bits/stdc++.h> using namespace std; #define int long long const int N = 10000005; const int V = 1e9; int n,m,src[N],a[N],ch[N][2],root[N],ind; void copynode(int dest,int src) { ch[dest][0]=ch[src][0]; ch[dest][1]=ch[src

《洛谷P3834》

回顾一下可持久化线段树。 这题是经典的查询静态区间第k小。 对于主席树,可以将每个区间位置,看成第i个历史版本,然后对每个点去维护一棵树。 然后对于第i个点维护的x位置,存的值是1~i的x的前缀和。 查询的时候,比较下前缀和左边是否满足即可。 注意换到右边时,需要减去左区间个数,保证相

[洛谷 P3834] 可持久化线段树模板

#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> using namespace std; #define RG register int #define LL long long template<typename elemType> inline void Read(elemType &

luogu P3834 【模板】可持久化线段树 1(主席树)| 静态第k小问题^&

题目描述 如题,给定 nnn 个整数构成的序列,将对于指定的闭区间查询其区间内的第 kkk 小值。 输入格式 第一行包含两个正整数 n,mn,mn,m,分别表示序列的长度和查询的个数。 第二行包含 nnn 个整数,表示这个序列各项的数字。 接下来 mmm 行每行包含三个整数 l,r,k l, r, kl,r,k , 表示查

P3834 【模板】主席树

  题目地址 注意点: MAXN可开到1e7. #include<cstdio>#include<iostream>using namespace std;const int MAXN=1e7,INF=2e9;struct Node{ int ls,rs; int cnt;}tr[MAXN];int nodeCnt=0;void insert(int p,int &q,int l,int r,int val){ if(!q)q=++nodeCnt; if(l==r