sample input
25 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
sample output
case 1:
14 1 4
case 2:
7 1 6
#includeusing namespace std;
int main()
for(int i = 1; i < n; i++)
if(thissum < 0)//步驟2
}cout << "case " << ++count << ":" << endl;
cout << maxsum << " " << maxleft + 1 << " " << maxright + 1 << endl;
if(t != 0)
cout << endl;
}return 0;
}
解題思路:該題所求的是總和最大的公共連續子串行,因此最簡單的方法是暴力破解法,但是這種方法的時間複雜度過高,為n的三次方,因此不會ac。上述**使用的方法是動態規劃,在輸入資料的過程中求解最大總和。
具體的方法:
1、使用thissum和maxthis來記錄當前總和和之前最大的總和,比較兩者的大小,如果thissum大於maxthis(即當前數是正數),則更新子串行的位置
2、如果thissum的值小於0(也就是當前的負數的絕對值是大於之前所有值的總和),則要將thissum清0,同時更新當前的位置。這樣的目的是為了計算該負數之後的子串行的最大總和,以便和該負數之前的子串行總和比較,從而得出最大的子串行的總和。
注意:在輸入第乙個資料時也要看該數是否是負數,如果是則要按步驟2的方法進行處理。
HDU 杭電 1231 最大連續子串行
最大連續子串行 problem description 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大和 為20。在今年的資料結構考卷中,要求編寫程式得到最大和,現在增加乙個要求,即還需要輸...
杭電oj刷題2027
problem description 統計每個母音字母在字串 現的次數。input 輸入資料首先包括乙個整數n,表示測試例項的個數,然後是n行長度不超過100的字串。output 對於每個測試例項輸出5行,格式如下 a num1 e num2 i num3 o num4 u num5 多個測試例項...
杭電Oj刷題(2005)
題目描述 給定乙個日期,輸出這個日期是該年的第幾天。input 輸入資料有多組,每組佔一行,資料格式為yyyy mm dd組成,具體參見sample input 另外,可以向你確保所有的輸入資料是合法的。output 對於每組輸入資料,輸出一行,表示該日期是該年的第幾天。sample input 1...