螞蟻的難題 二 首尾相連陣列的最大子陣列和(DP)

2022-04-01 00:10:05 字數 1341 閱讀 1735

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:3

描述下雨了,下雨了,螞蟻搬家了。

已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭 這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食材。時間緊急,你快幫幫小螞蟻吧,讓它搬走的食材喜愛值和最大。

輸入有多組測試資料(以eof結尾)。

每組資料有兩行,第一行有乙個n,表示有n種食材排成了乙個圈。(1 <= n<= 50000)

第二行分別有n個數,代表螞蟻對第n種食材的喜愛值vi。(-10^9 <= vi <= 10^9)

輸出輸出小螞蟻能夠搬走的食材的喜愛值總和的最大。

樣例輸入

3

3 -1 2

5-8 5 -1 3 -9

樣例輸出

5

7

這題是最大欄位和的變形,關鍵的地方是資料可以迴圈,分兩步解決:

第一步,求出這組資料的首尾不迴圈的最大欄位和s1

第二步,這個可以在第一步的時候,求出他的最小字段和s2,還有全部資料之和s,那麼,根據題目的要求,將s1與s-s2的值比較就可以得到最後的結果。

1 #include2

#define max(x,y) x>y?x:y

3#define min(x,y) x>y?y:x

4long

long arr[200001];5

int main()

21if(result<0)result=0

;22 printf("

%lld\n

",result);}

23return0;

24 }

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:4

描述給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連 續元素可以組成乙個子陣列,其中存在這樣的子陣列arr[i],…arr[n-1],arr[0],…,arr[j],現在請你這個acm_lover用 乙個最高效的方法幫忙找出所有連續子陣列和的最大值(如果陣列中的元素全部為負數,則最大和為0,即乙個也沒有選)。

輸入輸入包含多個測試用例,每個測試用例共有兩行,第一行是乙個整數n(1=輸出

對於每個測試用例,請輸出子陣列和的最大值。

樣例輸入

6

1 -2 3 5 -1 2

56 -1 5 4 -7

樣例輸出

10

14兩題**一樣。。。

NYOJ 983 首尾相連陣列的最大子陣列和

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr i arr n 1 arr 0 arr j 現在請你這個...

NYOJ 983 首尾相連陣列的最大子陣列和

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr i arr n 1 arr 0 arr j 現在請你這...

九度 1527 首尾相連陣列的最大子陣列和

題目描述 給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr i arr n 1 arr 0 arr j 現在請你這個acm lover用乙個最高效的方法幫忙找出所有連續子陣列和...