摘要:
题目大意:有一棵树有N个点,每条边有边权,有4种操作:1.Change i w:将输入的第i条边的权值修改为w。2.Cover u v w:将点u和点v之间路径上的边权都修改为w。3.Add u v w:将点u和点v之间路径上的边权都加上w。4.Max u v:询问点... 阅读全文
摘要:
题目大意:有一个长度为N的数列,不断取长度为K的连续区间:[1,K],[2,K+1],...,[N-K+1,N],求出每个区间内的最大值和最小值。做法:这道题使用的是一种叫单调队列的数据结构,具体说明在百科中也有,在这里就不多说了。这道题就是维护两个单调队列maxq和... 阅读全文
摘要:
题目大意:有一个长度为N的数列,不断取长度为K的连续区间:[1,K],[2,K+1],...,[N-K+1,N],求出每个区间内的最大值和最小值。做法:这道题使用的是一种叫单调队列的数据结构,具体说明在百科中也有,在这里就不多说了。这道题就是维护两个单调队列maxq和... 阅读全文
摘要:
题目大意:有一座城市有N个区域(从0开始编号),每两个区域之间有且只有一条路径相连,有Q个询问,每个询问包含三个整数x,y,z,意为询问连接x,y,z三点的最短路径长度。对于每个询问,给出正确的答案。做法:在模板上进行了一些加强,但是也不难,容易得出:连接x,y,z三... 阅读全文
摘要:
题目大意:有一座城市有N个区域(从0开始编号),每两个区域之间有且只有一条路径相连,有Q个询问,每个询问包含三个整数x,y,z,意为询问连接x,y,z三点的最短路径长度。对于每个询问,给出正确的答案。做法:在模板上进行了一些加强,但是也不难,容易得出:连接x,y,z三... 阅读全文
摘要:
题目大意:给定一棵有N个节点的有根树,对于每条边,读入两个数,标号为前面那个数的点是标号为后面那个数的点的父亲,在每组测试数据的最后给出两个点,求出它们的最近公共祖先(LCA)。做法:LCA裸题......也可以用倍增写,但是鉴于本人比较懒的缘故,当然是怎么能过就怎么... 阅读全文
摘要:
题目大意:给定一棵有N个节点的有根树,对于每条边,读入两个数,标号为前面那个数的点是标号为后面那个数的点的父亲,在每组测试数据的最后给出两个点,求出它们的最近公共祖先(LCA)。做法:LCA裸题......也可以用倍增写,但是鉴于本人比较懒的缘故,当然是怎么能过就怎么... 阅读全文
摘要:
题目大意:有一棵树,每条边有边权,有两种操作:1.修改某条边的边权。2.将某两个点之间路径上所有边的边权修改成它的相反数。3.询问某两个点之间路径上的所有边的边权的最大值。对于每个询问,给出正确的答案。做法:一道比较难的树链剖分题,需要注意的是,在用线段树维护时,需要... 阅读全文
摘要:
题目大意:有一棵树,每条边有边权,有两种操作:1.修改某条边的边权。2.将某两个点之间路径上所有边的边权修改成它的相反数。3.询问某两个点之间路径上的所有边的边权的最大值。对于每个询问,给出正确的答案。做法:一道比较难的树链剖分题,需要注意的是,在用线段树维护时,需要... 阅读全文
摘要:
题目大意:有一棵树,每条边有边权,有两种操作:1.修改某条边的边权。2.询问某两个点之间路径上的所有边的边权的最大值。对于每个询问,给出正确的答案。做法:树链剖分的模板题,注意细节就可以了。(我竟然把query里面的a=f[top[a]]写成了a=top[a],结果做... 阅读全文