HDU 1231 最大連續子串行

2021-07-04 20:24:03 字數 940 閱讀 4687

#include 

#include

using

namespace

std;

const

int maxn = 1e4 + 5;

int num[maxn];

int dp[maxn];

int k;

struct start_end

oped[maxn]; //建立結構體 儲存對應位置的起點和終點

int main()

else

oped[i].op = start;

oped[i].ed = end;

}int max_i = 0;

for(int i = 0; i < k; i ++)

if(dp[max_i] < 0)

printf("0 %d %d\n", num[0], num[k - 1]);

else

printf("%d %d %d\n", dp[max_i], oped[max_i].op, oped[max_i].ed);

}return

0;}

題意:

給定k個整數的序列,其任意連續子串行可表示為,其中 1 <= i <= j <= k。最大連續子串行是所有連續子串行中元素和最大的乙個,

例如給定序列,其最大連續子串行為,最大和

為20。

在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該

子串行的第乙個和最後乙個元素。

題解:

dp。

num: -2 11 -4 13 -5 -2

dp: -2 11 7 20 15 13

先把dp[0] = num[0] 投入,之後從 i = 1開始,判斷dp[i - 1]是否小於0—-小於0不加 大於0 加。

hdu 1231 最大連續子串行

狀態方程dp i max dp i 1 a i a i dp 0 a 0 include include include include include include include include include include include include include includeus...

HDU 1231 最大連續子串行

problem description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行的第...

HDU1231 最大連續子串行

problem description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行的第...