题意:
一棵树 m次染色 每次染色一条路径 颜色不会覆盖会积累 问每个点覆盖次数最多的颜色是什么
思路:
树上路径操作不是树链剖分就是LCT 对于每次染色 相当于让那种颜色的权值+1
一般的熟练剖分都是将树剖成线段然后放在线段树上 这题只是剖成线段 然后对于路径的染色 就变成了对多个线段的染色
由于剖分已经使树变成了线性的结构 因此我们可以利用“头加尾减”的方式维护 即 如果染色[u,v]那么u处++然后v+1处--
由于本题有多种颜色 为了快速解决区间更新和求最大值问题我们需要使用线段树 即维护权值线段树 然后从头到尾扫一遍即可
代码:
#pragma comment(linker,"/STACk:10240000,10240000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include