既然对于递增的i,它的决策点单调不降,那么我们为什么不可以这么写?
int q[100005],l=1,r=0; for1(i,1,n){ while(l<r&&dp[q[l]]+calc(q[l],i)>dp[q[l+1]]+calc(q[l+1],i)) l++; dp[i]=dp[q[l]]+calc(q[l],i); q[++r]=i; }