30分求调

P4072 [SDOI2016] 征途

``` while(head<tail&&getUp(p-1,q[head],q[head+1])>=2*sum[i]*getdown(q[head],q[head+1])) head++; int j=q[head]; dp[p][i]=dp[p-1][j]+(sum[j]-sum[i])*(sum[j]-sum[i]); while(head<tail&&getUp(p-1,q[tail-1],q[tail])*getdown(q[tail],i)>=getUp(p-1,q[tail],i)*getdown(q[tail-1],q[tail])) tail--; q[++tail]=i; ```
by hgzx__lc @ 2023-12-31 14:41:27


|