文章分类 - 数据结构——主席树
摘要:我们直接在dfs的时候顺便建主席树 维护一个节点到根路径上的节点出现情况 对于查询(u,v) 用u点的主席树+v点的主席树 lca(u,v)的主席树 lca(u,v)父节点的主席树,在这样产生的主席树上查找第k小的排名,最后输出它原来的点权。 lca我选择了树链剖分 cpp include defi
阅读全文
摘要:对于询问[i,j] 在[1..n]中我们看看小于mid的数字有多少个,显然如果个数的两倍 define N 500005 using namespace std; int n,m,a[N],rt[N 100],lson[N 100],rson[N 100],tot,sum[N 100]; void
阅读全文
摘要:这是一道好题 可以更深的理解主席树 最初的想法是 一开始 一边加入任务 一边维护时间轴 换句话说 对于每个时间点 我们都想维护一颗权值线段树(这里的权值代表着优先级Pi)相当于对于一个任务 我们要维护Ei Si棵 然而显然MLE 考虑降维 联想到主席树建树方式是通过前缀和来的 既然是求前缀和 这道题
阅读全文
摘要:我们先考虑如何比较两两的字符串 我们可以用线段树来维护哈希值 在线段树上根据二分的性质来做即可 又考虑到 每颗线段树是在之前的某颗基础上只修改了一个节点 那显然就想到了主席树 另外说说如何pushup 我们考虑这样一个字符串 abcdefg 假设当前节点左儿子是abc 右儿子是defg 由于我们的哈
阅读全文

浙公网安备 33010602011771号