摘要: "传送门" 分析: 对每个点都进行一次二分:将该点作为链的底端,二分链顶端所在的深度,然后倍增找到此点,通过前缀和相减求出链的权值,并更新l,r。 code cpp include using namespace std; namespace IO { template inline void re 阅读全文
posted @ 2017-11-01 18:06 CzYoL 阅读(146) 评论(0) 推荐(0) 编辑
摘要: "传送门" 分析: 树链剖分:x y,将x到y的路径加一,并将x端点的答案 1,最后统计答案。 树上差分:x y,x+1,y+1,lca 1,fa[lca] 1,并将x打上标记,最后统计前缀和时将打上标记的点 1. 两种方法最后都要将终点答案 1. code 差分 cpp include using 阅读全文
posted @ 2017-11-01 18:01 CzYoL 阅读(178) 评论(0) 推荐(0) 编辑
摘要: " luogu 2002 消息扩散" :对原图进行tarjan缩点,对缩后的点连边,统计入度为0的点。 "luogu 1119 灾后重建" :对于每个新加入的点,将其作为中转点,跑floyed。 "luogu 1186 玛丽卡" :类似次小生成树,求出最短路径后,将其路径上的每一条边删去,再求一遍。 阅读全文
posted @ 2017-11-01 17:14 CzYoL 阅读(154) 评论(0) 推荐(0) 编辑