NOI2015 day1t1:离散化,并查集 day1t2:树链剖分,dfs序 day1t3:状态压缩动态规划,trick day2t1:k叉哈夫曼树 day2t2:后缀数组,按序合并 day2t3:动态规划,有上下界网络流 unsolved:day2t3
分类:
其他好文 时间:
2015-11-18 15:49:39
阅读次数:
125
#139. 【UER #4】被删除的黑白树Time Limit: 1 Sec Memory Limit: 256 MB题目连接http://uoj.ac/problem/139Description很久很久以前,有一棵树加入了 UOJ 群。这天,在它讨论“一棵树应该怎么旋转”的时候一不小心被删除了,...
分类:
其他好文 时间:
2015-10-24 14:19:15
阅读次数:
196
题目:单边修改,树链查询。这题是边权,不是点权,不过也可以看作是点权。然后其实就和BZOJ2819一样。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MAXN 111111 6 struct Edge...
题目:单点修改、树链查询。可以直接用树链剖分做。。修改是O(QlogN),查询是O(QlogNlogN),Q=N=500000;听说会超时。。这题也可以用DFS序来做。先不看修改,单单查询:可以求出每个点到根的xor值,那么对任意两点的查询就等于xor(u)^xor(v)^val(lca(u,v))...
分类:
其他好文 时间:
2015-10-17 10:38:03
阅读次数:
208
题目,是对一颗树,单点修改、子树查询。典型的dfs序入门题。DFS序可以将一颗树与子树们表示为一个连续的区间,然后用线段树来维护;感觉算是树链剖分的一种吧,和轻重链剖分不同的是这是对子树进行剖分的。我用非递归方式求DFS序。 1 #include 2 #include 3 #include 4 us...
分类:
移动开发 时间:
2015-10-13 09:11:54
阅读次数:
251
离线算法:先将所有涉及到的串建成字典树,然后用线段树维护dfs序,时间复杂度$O(m\log L)$。在线算法:用替罪羊树动态维护Trie树的dfs序即可,时间复杂度$O(L\log L)$。#include#include#includeusing namespace std;const int ...
分类:
其他好文 时间:
2015-10-12 22:38:24
阅读次数:
305
题意:给出一棵树,root=1,树有点权,有一个人叫做M有3种操作:1 u v 把u到v路径上的所有点的点权都给M2 u 若u的点权在M手上,拿走3 u 把u为根的子树的所有点权都给M每一个操作过后,输出M拥有的点权想法:要维护路径,用树链剖分要维护子树,用dfs序但是这样貌似要写很多然而后来知道树...
分类:
其他好文 时间:
2015-10-11 11:20:08
阅读次数:
247
题意:给定一棵树,求这个节点的所有子树中包括他本身与它互质的节点的个数.解题思路:题利用dfs序+容斥原理+前缀和性质解决。题目中要求每个结点,和多少个它的子结点互素。如果每次为了求一个点去跑一遍dfs,复杂度将是 O(N(N+M))。一定会超时。因此需要深入加以分析。注意到n的范围是10^5以内的...
分类:
其他好文 时间:
2015-10-10 16:50:53
阅读次数:
297
将输入的Trie建成AC自动机,并建出fail树。那么操作1等价于在给定点的子树的并集里都加1。操作2等价于查询给定点到根节点路径的并集的权值和。求出DFS序后,对于操作1,将点按进入时间戳从小到大排序,然后求出并集,进行区间修改即可。对于操作2,构造给定点集的虚树,在虚树的每一条边上询问权值和,累...
分类:
其他好文 时间:
2015-10-06 01:53:08
阅读次数:
252
树上的区间第k小数,以前写的主席树是一直MLE的,后来看到一种在初始化的时候的优化:直接DFS这颗树,得到每个点的主席树,然后更新的时候另外对DFS序建主席树,答案加上初始每个点的主席树,这样在初始化每个点的时候就不需要用BIT维护了,省去的空间正好AC了这个题。呆马: 1 #include ...
分类:
Web程序 时间:
2015-10-02 19:57:36
阅读次数:
278