这个数据范围很显然的要分段程序
两段越平均越好,直接O(n)扫一遍即可
三段越平均越好,我们枚举其中一个等分点,调整另一个等分点(这个可以通过指针移动或二分来实现)。然后我们就有了两个等分点。但是这两个等分点的答案不一定是最优的。所以左边的等分点可能向右移一格。这会造成什么后果呢?右边的等分点会向右移动若干格。这个可以二分搞一波,然后整个过程就是O(nlogn)的 (我没打二分直接调整两个等分点向左右偏离一点点取min水过去了,面壁中)
这个数据范围可以dp啦>< 枚举圆环在哪个位置断开 状态很好设,f[i][j]表示前i个位置分了j段的最小值。 写出DP式子,就是
新闻热点
疑难解答