####p1182 數列分段 section ii
對於給定的乙個長度為n的正整數數列 a_a1∼n,現要將其分成 mm(m\leq nm≤n)段,並要求每段連續,且每段和的最大值最小。
關於最大值最小:
例如一數列4 2 4 5 1 要分成 3 段。
將其如下分段:
4 2\4 5\1
第一段和為6,第 22 段和為 9,第 33 段和為 1,和最大值為 9。
將其如下分段:
4\2 4\ 5 1
第一段和為 4,第 2 段和為 6,第 3 段和為 6,和最大值為 6。
並且無論如何分段,最大值不會小於 6。
所以可以得到要將數列 4 2 4 5 1 要分成 3 段,每段和的最大值最小為 6。
第 11 行包含兩個正整數 n,m。
第 22 行包含 n個空格隔開的非負整數 ai,含義如題目所述。
乙個正整數,即每段和最大值最小為多少。
輸入 #1
5 3
4 2 4 5 1
輸出 #1
6
對於 20% 的資料,n≤10。
對於 40% 的資料,n≤1000。
對於 100% 的資料,n≤105,m≤n,ai < 10^8, 答案不超過 10^9。
#include using namespace std;
int n,m;
int a[100005];
int f(int x)
} if(num <= m)
return 1;
return 0;
}int main()
while(l <= r)
cout << l << endl;
return 0;
}
數列分段 二分
給出乙個數字串,將它分成 m m 個部分,要求每個部分的和的最大值最小。很明顯的二分答案。首先利用字首和求出前 i role presentation i i個數字之和,然後l 1,r s n l 1 r s n 來二分和的最大值。要注意當任意乙個s i s i 1 m s i s i 1 m那麼就...
數列分段 二分
題目鏈結 數列分段 描述對於給定的乙個長度為n的正整數數列a 1.n a 1.n 現要將其分成mm m nm n 段,並要求每段連續,且每段和的最大值最小。關於最大值最小 例如一數列4 2 4 5 1要分成3段。將其如下分段 4 2 4 5 1 第一段和為6,第2段和為9,第3段和為1,和最大值為9...
數列分段 Section II 二分
link description 給定乙個長度為n nn的序列,要求從中割成m mm段子區間,使m mm段子區間的區間和的最大值最小,輸出這個最大值 input 第 1 行包含兩個正整數 n,m。第 2 行包含 n 個空格隔開的非負整數 ai,含義如題目所述。output 乙個正整數,即每段和最大值...