最小m段和問題

2021-07-24 07:54:13 字數 628 閱讀 8414

description

給定n個整數組成的序列,現在要求將序列分割為m段,每段子序列中的數在原序列中連續排列。如何分割才能使這m段子序列的和的最大值達到最小?

程式設計任務:給定n個整數組成的序列,程式設計計算該序列的最優m段分割,使m段子序列的和的最大值達到最小。

input

輸入的第一行有2個正整數n和m。正整數n是序列的長度;正整數m是分割的斷數。接下來的一行中有n個整數。

output

輸出一行即:m段子序列的和的最大值的最小值。

sample input

1 110

sample output

10hint

樣例二:

輸入:9 3

9 8 7 6 5 4 3 2 1

輸出:17 

code

#include using namespace std;

#define n 200

int dp[n][n] ;//dp(i,j)表示前i個資料的j劃分

int main()

dp[0][0] = 0;

//dp[1][1] = a[0] ;

for(int i = 1; i < n ;++i)}}

cout<

codevs 3278 最小m 段和問題

時間限制 1 s 空間限制 256000 kb 題目等級 gold 題目描述 description 給定 n 個整數 不一定是正整數 組成的序列,現在要求將序列分割為 m 段,每段子序列中的數在原序列 中連續排列。如何分割才能使這 m 段子序列的和的最大值達到最小?輸入描述 input descr...

最小m子段和(動態規劃)

問題描述 給定n個整數組成的序列,現在要求將序列分割為m段,每段子序列中的數在原序列中連續排列。如何分割才能使這m段子序列的和的最大值達到最小?輸入格式 第一行給出n,m,表示有n個數分成m段,隨後一行給出n個數,以空格分隔 輸入樣例 9 39 8 7 6 5 4 3 2 1 輸出樣例 解釋 9 8...

最小m子段和問題 C語言 動態規劃

題目描述 給定n個整數組成的序列,現在要求將序列分割為m段,每段子序列中的數在原序列中連續排列。如何分割才能使這m段子序列的和的最大值達到最小?解題思路 用dp i j 儲存長度為i,分j段後其子序列和的最大值的最小值,那麼它由兩部分構成 當j 1時,dp i 1 表示的是長為i的整個序列的和 當j...