【写在前面】 这道gou题的一大坑点:由于强制在线,如果你某次输出的答案不对,下一次更新u的时候就很容易导致Re。。。 所以你Re了不急着改大数组,先看看自己是不是wa了。。。 【题目大意】 给你一棵树,求某条链上第k小的点权。。。 【题解】 主席数的基本操作,以rt[i]为根节点的线段树存的是树上 ...
分类:
其他好文 时间:
2018-09-06 18:14:35
阅读次数:
182
题目不难,树上可持久化数据结构。 帖代码: ...
分类:
其他好文 时间:
2018-09-04 01:40:40
阅读次数:
180
题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 输入输出格式 输入格式: 第一行两个整数N,M。 第二行有N个整数,其中第i个整数 ...
分类:
其他好文 时间:
2018-07-30 21:31:46
阅读次数:
177
" Portal bzoj2588 " Solution 不行我一定要来挂这道题qwq很气愤qwq(其实还不是因为自己蠢。。) 额首先说一下正解 如果这个问题放在序列上面的话。。直接离散化一下然后一个可持久化权值线段树就好了 然后放在树上的话,我们可以考虑处理树上点对问题的一个很常见的套路: $$ ...
分类:
其他好文 时间:
2018-07-14 16:48:29
阅读次数:
172
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588 知识点: 可持久化线段树 解题思路: 先建一棵空的权值线段树,然后按照题目给出的树以任意一点为根的\(DFS\)序来更新这棵线段树。询问\((u,v,k)\)时,其实就是查询\(T[u ...
分类:
其他好文 时间:
2018-01-27 20:16:34
阅读次数:
154
每个节点继承父节点的树,则答案为query(root[x]+root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #incl ...
分类:
其他好文 时间:
2017-09-25 20:45:18
阅读次数:
140
先将权值离散。 显然可以对于每个结点建一棵权值线段树存这个点到根结点的路径上的点权,询问时在线段树上二分,但这样时间是O(n2log2n)的。 然后想到用主席树优化,时间复杂度O(n*log2n)。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #inc ...
分类:
其他好文 时间:
2017-05-04 18:33:02
阅读次数:
194
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注 ...
分类:
其他好文 时间:
2017-03-04 19:08:18
阅读次数:
223
[BZOJ2588][Spoj 10628]Count on a tree 试题描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 给定一 ...
分类:
其他好文 时间:
2017-01-26 12:24:58
阅读次数:
231
【BZOJ2588】Spoj 10628. Count on a tree Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是 ...
分类:
其他好文 时间:
2017-01-17 11:45:53
阅读次数:
198