
主席树
D_Bamboo_
我不懒,只是不知道填什么
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu5919 Sequence Il 主席树
题目链接 题意 给出一个序列,问区间[l, r]中所有不同元素出现的第一个位置(取最左)组成的序列中的第k/2个,k是区间不同数的个数。 第i个询问区间依赖于第i-1个询问的答案,所以是强制在线的。 思路 区间第k个,显然是主席树,和查询区间不同数的个数一样,都是相同的数只取一个,但这个是取相同数的最前面一个,所以在建树的时候倒过来建就可以满足要求,然后要查询位置第k/2的数的位置,所以先求出这个...原创 2019-12-11 18:43:55 · 272 阅读 · 0 评论 -
区间内不同数的个数
题目链接:https://vjudge.net/problem/SPOJ-DQUERY 询问区间内不同数的个数 做法一:树状数组做法:离线处理,将以r从小到大排序,一个标记数组记录数出现的位置,树状数组里只记录当前所有相同的数的最右位置,这样一个数就只会被加一次。 #include <bits/stdc++.h> using namespace std; const int maxn...原创 2019-12-11 16:51:22 · 735 阅读 · 0 评论 -
P2633 Count on a tree 树上主席树
树上主席树 在树上根据dfs序建立主席树。 题目 给定一棵 n 个节点的树,每个点有一个权值。有 m 个询问,每次给你 u,v,k,你需要回答 u xor last 和 v 这两个节点间第 k 小的点权。 其中 last是上一个询问的答案,定义其初始为 0,即第一个询问的 u 是明文。 维护主席树,每个节点代表这个下标的数出现的次数。 用u点的主席树+v点的主席树-lca(u,v)的主席树-lca...原创 2019-12-10 11:21:07 · 245 阅读 · 0 评论