虚树+树形DP 本题100W的点数……不用虚树真的好吗…… Orz ZYF我的感悟: dp的过程跟SPOJ 1825 FTOUR2 的做法类似,依次枚举每个子树,从当前子树和之前的部分中各找一条最长(短)路径更新答案,再把这个子树的最短路径加入到x节点中去(之前算过的部分)这样就实现了枚举所有...
分类:
其他好文 时间:
2015-02-02 21:25:55
阅读次数:
528
虚树+树形DP OrzZYF……果然好神……建虚树先按dfn排序,再用一个单调栈来维护当前这条【链】,往里加边……说实话还没弄懂- -留个坑吧……RE的原因:这条链往出退的时候没写top--;在第112行……导致死循环了! 1 /*********************************.....
分类:
其他好文 时间:
2015-02-01 23:05:08
阅读次数:
289
一眼,这不是裸树形dp嘛~一阵猛敲,敲完发现多组询问。。。额,不会了。。。围观hzwer,发现这就是虚树嘛!咦、等等,虚树是什么?就是个神奇的东西啦!构建虚树及dp的复杂度都是O(k * 2)级别的,由于Σki 11 #include 12 13 using namespace std; 1...
分类:
其他好文 时间:
2015-01-27 21:42:42
阅读次数:
151
题目大意:给出一个字符串,给出一些询问,每次问几个后缀两两之间的LCP之和。
思路:保证Σask数量级在O(n)上,可以考虑一下虚树了。建立虚树之后,这题就和差异那个题一样了。但是必须要打时间戳啊,要不死的很惨的啊。。
CODE:
#include
#include
#include
#include
#define MAX 1000010
using names...
分类:
其他好文 时间:
2015-01-19 19:12:37
阅读次数:
151
题解:又是一个大坑。。。算法一:很明显,最小割。预计得分20分。算法二:每次做一遍树DP,预计得分40分。算法三:虚树+单调栈。算法三是为了优化算法二而出现的,因为关键点很少,而我们每次都要dfs整棵树过于浪费。而我们只把关键点和它们的lca拎出来。使得每个点要不是关键点,要不是lca用来汇总答案。...
分类:
其他好文 时间:
2015-01-17 23:25:42
阅读次数:
343
SVT什么意思?
suffix virtual tree。
没有错!后缀虚树
好了,下面发一段以前的文字。
话说其实后缀数组分治能写,当时想shei了。
Vn:
啊,水题。
一看到“后缀”和这数据范围,肯定后缀数组、后缀自动机、后缀树走起!
然后我们可以轻松构造出来一个后缀树,然后每次询问树形DP随便乱搞就能过了。但是这个时候显然会TLE,所以我们可以尝试利用【...
分类:
其他好文 时间:
2015-01-17 18:07:00
阅读次数:
441
题解:
首先我们考虑每次都做一遍树形DP(树形DP自己脑补去,随便乱搞就过了)。
显然这是TLE无疑的。
所以可以利用LCA单调性构建虚树。
思想:
我们发现每次树形DP有很多点用不到,但是却需要被扫过,让他们见鬼去吧!
实现:
我们只对每次扫的图插入本次询问需要的节点,以及它们的LCA。
这样询问了m个点,虚树就至多只需要2m个点(so quick)。
而插入顺...
分类:
其他好文 时间:
2015-01-09 17:30:49
阅读次数:
165