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