HDU 1231 最大連續子串行

2021-07-15 18:53:18 字數 1236 閱讀 9198

題目大意:就是給你k個數,讓你列印這k個數最大連續子串行和。如果k個數全部都為負數那麼定義其最大和為0,輸出第乙個和最後乙個數。

解題思路:這道題可以去用dp的思想去做,首先除外全部輸入的數是負數的情況。我們肯定是定義第一數為最大和,首尾也是第乙個。我們利用乙個for迴圈去遍歷和sum,當這個sum大於0 讓這個sum繼續加下去,右邊的數就變成當前加的數。如果sum小於等於0 就把當前sum賦值為當前遍歷到的這個數,因為不可能全部為負數,肯定有正數,把左,右邊的數換成當前遍歷的這個數。當sum大於以往遍歷的最大連續和,我們就把最大的元素,首尾全部換掉。

下面我就上**了當然不能忘記全部為負數的情況!!!!!!

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=10005;

int k,beginnum,endnum;

int a[maxn];

int main()

if(num==k)//如果全部為負數的情況

int left=a[1];//初始化

int right=a[1];//初始化

int maxs=a[1];//初始化

int sum=a[1];//初始化

beginnum=a[1];//初始化

endnum=a[1];//初始化

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

if(sum<=0)

if(sum>maxs)

}printf("%d %d %d\n",maxs,beginnum,endnum);

}return

0;}

end!!!!!!!!!!!!!!!!!!

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。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行的第...