学习这位神犇的:http://blog.csdn.net/jiangyuze831/article/details/41476865注意:①排序时第一关键字是左端点所在块编号(块状树),第二关键字是右端点dfs序。②维护的当前链不能包括lca(l,r),但最后要计算上lca(l,r)的答案。③对l-...
分类:
移动开发 时间:
2015-01-25 13:50:04
阅读次数:
255
这题……咋说捏,其实是一道披着博弈论外衣的树上操作问题……随便用dfs序或者树链剖分转成序列,然后查询路径上的所有点的NIM和(异或和)就行了,毕竟除了是在树上以外,就是裸的NIM问题。树链剖分:一开始把线段树写跪了,然后输出“Yes”和“No”的时候全部大写了,再然后发现线段树空间开小了……代码如...
分类:
其他好文 时间:
2015-01-24 15:42:40
阅读次数:
215
这是一道神题。
首先我们需要建立AC自动机,然后再建个Fail树,之后发现
如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。
然后这样做就很可以了,但是仍然不能AC,
这时我们只需要按照Fail树的dfs序建立数据结构(我写了树状数组)进行区间查询就好了。
这时对于以上的b串,...
分类:
其他好文 时间:
2015-01-19 17:15:24
阅读次数:
128
这题……咋说捏,其实是一道披着博弈论外衣的树上操作问题……随便用dfs序或者树链剖分转成序列,然后查询路径上的所有点的NIM和(异或和)就行了,毕竟除了是在树上以外,就是裸的NIM问题。树链剖分:一开始把线段树写跪了,然后输出“Yes”和“No”的时候全部大写了,再然后发现线段树空间开小了……代码如...
分类:
其他好文 时间:
2015-01-04 21:07:13
阅读次数:
211
我说这个只是精简版(想的起来的)你们怕不怕……各种特定时间的手滑/XXX写错就不计算了1.线段树忘记pushdown……2.dfs序上建XXX时总忘记使用dfs序……3.trie的内存池要开3000000……其实开2000000有时也不是不能过题4.int fac[MAXN];unsigned lo...
分类:
其他好文 时间:
2014-12-22 09:17:54
阅读次数:
141
基本等同这个,只是询问的东西不大一样而已。http://www.cnblogs.com/autsky-jadek/p/4159897.html#include#include#includeusing namespace std;int Num,CH[12],f,c;inline void R(in...
分类:
编程语言 时间:
2014-12-15 19:01:03
阅读次数:
226
求子树第k大。。。对dfs序记时间戳,然后建主席树。。。不要问我为什么1WA,蒟蒻已经哭晕在厕所T T(原因是。。。输出了seq[query]...明明是a[query].w 叫你不仔细想2333) 1 /**********************************************....
分类:
其他好文 时间:
2014-12-14 13:13:59
阅读次数:
236
做法。。。就不讲了,参见hzwer的blog好了我们发现只要维护树上点到根的xor值就可以了,于是先搞个dfs序,然后用树状数组维护即可。反正各种调不出。。。各种WA后来发现又是LCA的姿势不对= =,今天不是刚写过noip题嘛T T蒟蒻还是滚去挖矿算了、、、 1 /***************....
分类:
其他好文 时间:
2014-12-14 00:31:57
阅读次数:
311
题意:在树中找到一个点i,并且找到这个点子树中的一些点组成一个集合,使得集合中的所有点的c之和不超过M,且Li*集合中元素个数和最大首先,我们将树处理出dfs序,将子树询问转化成区间询问。然后我们发现,对于单一节点来说,“使得集合中的所有点的c之和不超过M,且Li*集合中元素个数和最大”可以贪心地搞...
分类:
编程语言 时间:
2014-12-12 16:36:36
阅读次数:
249
于是两个一起搞了。。。怎么说,写的是P党风格的C++,短也不会短到哪里去,跑起来也不快,常数大成狗OTLBZOJ 1036树链的经典题吧,点修改+路经询问【Code】BZOJ 2243 路径修改+路径询问【Code】BZOJ 3083 路径修改+子树询问(根可变),这道题要用树链剖分求DFS序中某一...
分类:
其他好文 时间:
2014-12-10 22:28:23
阅读次数:
231