摘要: 全部串起来做SA, 在按字典序排序的后缀中, 包含每个询问串必定是1段连续的区间, 对每个询问串s二分+RMQ求出包含s的区间. 然后就是求区间的不同的数的个数(经典问题), sort queries + BIT 就行了.时间复杂度O(N log N). 速度垫底了QAQ 你们都会SAM。。。。-- 阅读全文
posted @ 2016-02-13 23:44 JSZX11556 阅读(589) 评论(1) 推荐(0) 编辑
摘要: 树的中序遍历是唯一的. 按照数据值处理出中序遍历后, dp(l, r, v)表示[l, r]组成的树, 树的所有节点的权值≥v的最小代价(离散化权值).枚举m为根(p表示访问频率):修改m的权值 : dp(l, r, v) = min( dp(l, m-1, v) + dp(m+1, r, v) + 阅读全文
posted @ 2016-02-13 21:54 JSZX11556 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 1棵树的话, 点分治+你喜欢的数据结构(树状数组/线段树/平衡树)就可以秒掉, O(N log^2 N). 假如是环套树, 先去掉环上1条边, 然后O(N log^2 N)处理树(同上); 然后再O(N log N)计算经过删掉边的路径数(在环上扫一遍, 数据结构维护).-------------- 阅读全文
posted @ 2016-02-13 16:23 JSZX11556 阅读(708) 评论(0) 推荐(0) 编辑