注意:如果更新时,新线更优,那么传递到子节点的是老线而非新线。
也就是
if(f(mid,v)-f(mid,val[now])>eps){ swap(val[now],v); update(mid+1,r,rs,v); }
是正确的,但是
if(f(mid,v)-f(mid,val[now])>eps){ val[now]=v; update(mid+1,r,rs,v); }
是错误的。
另外,务必把 vvv 设成局部变量。