scapple操作(update_min)要在一开头就判掉maxa[p]<=val的情况,而不能在递归入口那里判;否则如果这个函数的第一层就不满足maxa[p]<=val而满足val>semx[p]就会被错误更新 正确例:
scapple
update_min
maxa[p]<=val
val>semx[p]
void scapple(int p,int l,int r,int x,int y,int val){ if(maxa[p]<=val)return; if(x<=l&&r<=y&&val>semx[p]){ ///...... }