关于在LCT的边权转点权后有负数怎么维护最小值
查看原帖
关于在LCT的边权转点权后有负数怎么维护最小值
1000298
Vsinger_洛天依楼主2024/2/29 16:34

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

如果这些点的点权换成负数在结果为正数时会变成一个极大值(因为相反数

所以怎么维护求教教

代码在二楼

2024/2/29 16:34
加载中...