分块
文章平均质量分 82
Miao_zc
膜Hz
展开
-
bzoj4381: [POI2015]Odwiedziny
点这里→ 这道题暴力跑最多n/m个点(m为步长),当m较小时飞慢。考虑DP[i][j]表示从i以j步长跳到根的和,询问可达到O(1+lca)。 这样对m>sqrt(n)的暴力, 另外up函数是利用树剖把x往上跳y下,同一个方向跳复杂度O(logn)。 #include #include #include #define N 50005 using namespace std; int n,原创 2016-07-03 10:49:59 · 875 阅读 · 0 评论 -
codeforces 587F. Duff is Mad
蛮好的一道fail树的题目 考虑fail树,对于询问l,r,k,相当于询问l~r的字符串在AC自动机上对应节点在fail树子树中是第k个串前缀的节点的个数和。 发现k固定有一种O(n+Σ串长)的优秀做法,就不说了。同时对一些询问存在使用分块数据结构维护的离线O(Σ询问串长)的做法,就可以分块了,复杂度O(nsort(n)) 这个离线O(Σ询问串长)做法把询问挂在fail树上,dfs的同时维护原创 2017-06-09 10:42:05 · 724 阅读 · 0 评论