摘要: 题目 P2993 [FJOI2014]最短路径树问题 给定一个无向图,求出其最短路径树上面的,包含 \(k\) 个点的一条路径,使得这条路径权值尽可能大,并求出有多少条长度为这个的路径(不要求为 \(k\) 个点)。 分析 没意思题,点分治+最短路。 先直接跑最短路后建出树来。 然后如果把点数当作边 阅读全文
posted @ 2021-05-02 23:59 __Anchor 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 题目 P4149 [IOI2011]Race 给一棵树,每条边有权。求一条简单路径,权值和等于 \(k\),且边的数量最小,求最小个数。 分析 第一问很简单,我们只需要判定即可。 第二问我们其实可以考虑在第一问基础上记录这样的信息:用桶记录值等于当前权值的,且边最小的条数。 然后就可以和模板一样匹配 阅读全文
posted @ 2021-05-02 23:51 __Anchor 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 题目 P2634 [国家集训队]聪聪可可 转化题意:求权值是 3 的倍数的路径数量。 分析 我们直接把所有路径转化成模 3 意义下的数,然后其实就是询问权值和为 \(0/3\) 的路径个数。 直接套板子即可。 代码 #include<bits/stdc++.h> using namespace st 阅读全文
posted @ 2021-05-02 23:48 __Anchor 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 P4178 Tree 统计树上距离小于等于 \(k\) 的点对数量。 分析 这里使用容斥法进行计算,当然也可以使用树状数组来解决。 首先我们可以求出当前点所有向下路径两两拼接得到的小于等于 \(k\) 的路径个数,这个可以排序过后双指针扫一遍即可。 但是我们发现这样会有不合法的情况出现,也就是 阅读全文
posted @ 2021-05-02 23:45 __Anchor 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 P3806 【模板】点分治1 定一棵有 \(n\) 个点的树,多次询问树上距离为 \(k\) 的点对是否存在。 分析 淀粉质模板题。 淀粉质的核心就是其只统计经过当前根结点的路径,即可以把两条路径“拼”起来,同时分治结构保证了其只有 \(log\) 次这样的计算。 常用于统计树上点对数量这样的 阅读全文
posted @ 2021-05-02 23:35 __Anchor 阅读(21) 评论(0) 推荐(0) 编辑