摘要: "传送门" 题意: 给出一颗边权为正数的树,问有多少点对之间的距离小于等于$k$。 思路: 点分治模板题,对于一个子问题,$dfs$出所有的距离之后,排个序可以用双指针,或者直接二分也行,复杂度都为$O(nlogn^2)$。 cpp include using namespace std; type 阅读全文
posted @ 2019-09-03 18:29 heyuhhh 阅读(218) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题意: 给出一颗树,每条边都有一定的边权。 先问点之间路径和为$3$的倍数的点对有多少。 思路: 点分治模板题。 可以将问题转化为经过一个点$t$的路径和不经过点$t$的路径两种情况,后者可以直接递归处理。 在一个子问题中,$dfs$一遍处理出根结点到其余子树中所有点的距离,然后得到距离 阅读全文
posted @ 2019-09-03 18:23 heyuhhh 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 今年多校有这样一道题: "传送门" 做法如果直接dfs暴力跳fail指针,跳到一个标记了的结点就break,跑得很快,后面有群友说只需要跳一次fail指针即可。 当时没怎么想明白,今天来看又想了一下,发现证明并不难,只需要分几种情况即可,我就直接放图吧: 总结: 在许多的自动机中都存在fail指针, 阅读全文
posted @ 2019-09-03 13:02 heyuhhh 阅读(214) 评论(0) 推荐(0) 编辑