dp的題目大部分只要找出狀態方程就很好做,本題是
if (current<0)
else
current+=a[i];
if (current>res)
current是當前的要判斷的值,當他是負數時,總體更新頭尾節點,重新整理最大值,從頭dp就能解決有多個最大子串行的問題,且判斷是不能是大於等於。下面是源**
#include
#include
#include
#include
using namespace std;
#define max 10001
int max(int a,int b)
int first,last,n,res;
int a[max];
int main()
else
res=a[0];
first=a[0];
last=a[0];
int current=0;
for (i=0;i
else
current+=a[i];
if (current>res)
}if (res<0)
else
}return 0;
}
HDU 1231 最大子串行
problem description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行的第...
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。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸出該 子串行的第...