http://www.lydsy.com/JudgeOnline/problem.php?id=3674http://www.lydsy.com/JudgeOnline/problem.php?id=3673双倍经验啦啦啦。。给主席树换了个名称果然高大上。。。首先要可持久化并查集其实就是可持久化数组...
分类:
其他好文 时间:
2014-12-08 19:33:19
阅读次数:
260
A - D-query
Time Limit:1500MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Submit Status Practice SPOJ
DQUERY
Appoint description:
System Crawler (2014-12-06)
Description...
分类:
编程语言 时间:
2014-12-07 06:35:32
阅读次数:
266
题目大意:N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。
思路:看到了wulala的题解,这里就直接粘过来了。
葱娘说这是一个很巧妙的题。。
有一个比较猎奇的做法:首先把边依次加到图中,若当前这条边与图中的边形成了环,那么把这个环中最早加进来的边弹出去
并将每条边把哪条边弹了出去记录下来:ntr[i] = j,特别地,要是没有弹出边,ntr[i] =...
分类:
其他好文 时间:
2014-12-03 12:29:52
阅读次数:
273
题目大意:维护一种数据结构实现可持久化并查集。
思路:利用可持久化线段树实现可持久化数组维护可持久化并查集。(不知道3674哪里加强了。。。
CODE:
#include
#include
#include
#include
#define RANGE 8000010
#define MAX 200200
using namespace std;
struct...
分类:
其他好文 时间:
2014-12-03 09:22:29
阅读次数:
170
[转载]一篇还算可以的文章,关于可持久化线段树http://finaltheory.info/?p=249无修改的区间第K大我们先考虑简化的问题:我们要询问整个区间内的第K大。这样我们对值域建线段树,每个节点记录这个区间所包含的元素个数,建树和查询时的区间范围用递归参数传递,然后用二叉查找树的询问方...
分类:
其他好文 时间:
2014-11-21 23:11:31
阅读次数:
290
题目大意:同3545 强制在线
3545题解传送门:http://blog.csdn.net/popoqqq/article/details/40660953
强制在线没法排序 启发式合并也就用不了了
Kruskal重构树是个挺好玩的东西 可以拿来处理一些最小生成树的边权最值问题
这里我们Kruskal连边时并不直接连边 而是新建一个节点ext 将两个点所在子树都连到ext的儿子上
比如...
分类:
其他好文 时间:
2014-11-21 16:21:43
阅读次数:
252
题目大意:给定n个字符串,对于每个字符串求以这个字符串为后缀的字符串中第k小的编号
首先将字符串反转 那么就变成了对于每个字符串求以这个字符串为前缀的字符串中第k小的编号
然后考虑对字符串排序 那么对于每个字符串以它为前缀的字符串一定是连续的 那么就转化成了区间第k小 这个用可持久化线段树可以解决
排序自然不能直接排 既然是字符串 考虑Trie树+DFS即可 注意字符串有重复的 小心
#i...
分类:
其他好文 时间:
2014-11-17 14:07:57
阅读次数:
140
题目链接:Codeforces 484E Sign on Fence
题目大意:给定给一个序列,每个位置有一个值,表示高度,现在有若干查询,每次查询l,r,w,表示在区间l,r中,
连续最长长度大于w的最大高度为多少。
解题思路:可持久化线段树维护区间合并,前端时间碰到一题可持久化字典树,就去查了一下相关论文,大概知道了是
什么东西。
将高度按照从大到小的顺序排序...
分类:
其他好文 时间:
2014-11-07 01:00:01
阅读次数:
343
写过可持久化线段树,但是从来没写过可持久化的Trie,今天补一补。题目就是典型的给你一个数x,和一个数集,问x和里面的某个数xor起来的最大值是多少。最原始的是数集是固定的,只需要对数集按照高到低位去建Trie,然后贪心匹配就可以了。这里则是对树上路径的操作,其实也是一样的,对每个节点x维护root...
分类:
其他好文 时间:
2014-11-04 22:36:12
阅读次数:
332
题目大意:给出一个序列,问一个区间里有没有长度为定长的已知序列。
思路:第一步的想法是把序列哈希一下,如果暴力的话,就是在区间里面O(n)的去判断,但是这样显然太慢了,我们需要O(logn)的时间之内求出区间内有没有一个值。这个问题就可以用可持久化线段树或者划分树来解决了。划分树我不咋会,就写了可持久化线段树。代码略丑,见谅。
CODE:
#include
#inclu...
分类:
其他好文 时间:
2014-11-04 17:34:01
阅读次数:
120