【题目大意】 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 【思路】 这道题迷之好写,因为思路条理太清晰了! 我们每个点就是一棵线段树,维 ...
分类:
其他好文 时间:
2016-08-15 13:02:08
阅读次数:
164
这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分没出问题) 顺便吐槽:spoj上内存限制1.5G实在太6,,, 导致我乱开数组,交bzoj的时候ML ...
分类:
其他好文 时间:
2016-08-09 09:18:42
阅读次数:
149
bzoj2588 Spoj 10628. Count on a tree 题意: n点树,m个询问求点u到点v路径上第k小的点权。强制在线。n,m≤100000 题解: 用主席树维护某节点到根节点的权值数量sz,建树过程可以由父亲节点递推。询问就用倍增求出lca,然后路径上的sz值就为sz[u]-s ...
分类:
其他好文 时间:
2016-07-24 17:39:38
阅读次数:
176
主席树。 求a到b的路径可以看作a到根和b到根的路径的一部分。 对于每个节点,需要查询它到根路径各个数出现的次数。 如果对于每个节点都建一棵权值线段树,肯定会爆掉。 这时用主席树,该节点的权值线段树由父亲的权值线段树转移而来。 建树之前,要对整个数进行重标号,建树的时候才能保证父亲的树已经被建了。 ... ...
分类:
其他好文 时间:
2016-07-11 20:51:51
阅读次数:
236
真正的失败不是你没有做成事,而是你甘心于失败。...
分类:
其他好文 时间:
2016-05-07 10:03:05
阅读次数:
199
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588 Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个
分类:
其他好文 时间:
2016-03-02 18:06:00
阅读次数:
157
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588lca+可持久化线段树在树上建一棵可持久化线段树就可以了。#include#include#include#include#define rep(i,l,r) for (int i=l;i=...
分类:
其他好文 时间:
2015-12-21 15:47:44
阅读次数:
191
这道题和bzoj2588很像,是动态区间第K大的变形。先求DFS序,一棵子树的DFS是连续的,不妨记为[l,r],我们维护前缀和,在l处+1,在r+1处-1。变成动态区间第K大的经典问题,用树状数组套线段树。#include#include#include#include#include#inclu...
分类:
其他好文 时间:
2015-07-15 22:30:45
阅读次数:
166
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588就是静态区间第K大的变形。每个节点为一棵线段树,表示到根的路径中,以权值为下标的线段树。每个节点建树的时候,以父亲为历史版本。对于询问点x和点y的时候,就是求ask(x)+ask(y)-as...
分类:
其他好文 时间:
2015-07-15 22:27:01
阅读次数:
126