摘要: 题意:给定一棵树,初始边权为零,对其进行以下操作: 1. 把树上a到b的路径上的边权:0变为1,1变为0。 2. 与树上a到b的路径相邻的边(只有一个公共点),把它们的边权:0变为1,1变为0。 3. 查询a到b的路径上的边权和。 思路: 操作1用普通的重链剖分就可以解决。 对于操作2,可以看出,在 阅读全文
posted @ 2020-08-16 21:33 --HY-- 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 树链剖分基本操作: 1. 修改第i条边的权值。 2. 对树上一条路径的权值取反(正变负,负变正)。 3. 查询树上一条路径的权值的最大值。 因为要取反,所以要同时维护最大值和最小值。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorith 阅读全文
posted @ 2020-08-16 08:49 --HY-- 阅读(189) 评论(0) 推荐(0) 编辑