摘要: f[0][i]为i出发的最长路,f[1][i]为到i的最长路新建源汇S,T,S向每个点连边,每个点向T连边将所有点划分为两个集合S与T,一开始S中只有S,其它点都在T中用一棵线段树维护所有连接属于两个集合的点的边,权值为f[1][u]+f[0][v]按拓扑序依次计算去掉每个点后图中的最长路对于当前计... 阅读全文
posted @ 2015-01-18 15:39 Claris 阅读(781) 评论(0) 推荐(2) 编辑
摘要: 求出S串的后缀树,则两个后缀的lcp等于其lca到根的距离对于每次询问,对这些节点构造虚树,然后树形DP即可#include#includeusing std::sort;typedef long long ll;const int inf=1='0')&&(c='0')&&(c=tree[node... 阅读全文
posted @ 2015-01-18 12:40 Claris 阅读(641) 评论(0) 推荐(0) 编辑