BZOJ2600_ricehub_KEY】的更多相关文章

题目传送门 这道题一开始我还以为是贪心,sort一遍直接取中点然后求最优值. 但写了之后才发现错误,设置的谷仓只要是一段区间的中点即可.这段区间的两端一定是两片谷田. 所以枚举区间的左端点,二分右端点,但问题是如何O(1)判断? 设sumi表示1~i点的和. L~R区间所需要的费用分成两段来求. 一段为L~mid-1,一段为mid+1~R. L~mid-1=a[mid]*(mid-l)-(sum[k-1]-sum[l-1]); mid+1~R=sum[r]-sum[k]-a[k]*(r-k);…