rt,题目是POJ的
用的是LCT来维护,边权转点权
操作有转化为相反数,所以用了一个max一个min
inline void push_up(int x){
ansmax[x]=max({ansmax[lc],ansmax[rc],val[x]});
ansmin[x]=min({ansmin[lc],ansmin[rc],val[x]});
}
但是有个问题,就是说我转的方法是加入一些值为0的代表点的点
所以只要有负数就min的值会是0
如果这些点的点权换成负数在结果为正数时会变成一个极大值(因为相反数
所以怎么维护求教教
代码在二楼