摘要: 题解: 倍增+floyd 首先这题比较容易想到是把每个点拆点做dij 但是这样复杂度是knlogn的 这道题的k较大,所以不行 我们考虑到每走一步,其实就是在进行一次floyd 而这个可以看成矩阵乘法 所以可以倍增优化 这样是logk*n^3的 代码: 阅读全文
posted @ 2018-06-18 15:48 尹吴潇 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题解: 刚开始把题目看错了 以为没有给出路径 那我们就可以求极长路径为k的分别有多少条 可以上点分治+fft 是nlogn^2的 因为fft的范围和点分治后剩余的节点多少有关 正确的题目意思的话 我们将路径分两种情况 一是ab不是直着连向根的 那么只需要求一个端点在a子树中 而另一个端点在b子树中的 阅读全文
posted @ 2018-06-18 00:47 尹吴潇 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题解: 这个应该还是比较简单的 首先比较容易想到用lct来维护 我们可以建立一个特殊点 然后我们要处理环 其实只要判断它和不和这个特殊点联通就行了 那么当它不是环了我们怎么还原呢 只要对每个在根节点记录一下lazy标记 然后处理一下就好了 代码: 阅读全文
posted @ 2018-06-18 00:40 尹吴潇 阅读(221) 评论(0) 推荐(0) 编辑