斜优部分:
for(int i=1; i<=n; i++) {
while(l<r && K(q[l],q[l+1])<-dis[i]) l++;
dp[i]=tot-dis[q[l]]*sum[q[l]]-dis[i]*(sum[i]-sum[q[l]]);
ans=min(ans,dp[i]);
while(l<r &&K(q[r],q[r-1])>K(q[r-1],i)) r--;
q[++r]=i;
}
其中K函数是求经过两个点直线的解析式
关于第二个while的地方写K(q[r],q[r-1])>K(q[r-1],i)和K(q[r],q[r-1])>K(q[r],i)都可以通过,请问是数据问题还是写法不同但都正确?