NYOJ 螞蟻的難題 二 dp

2021-06-18 08:06:54 字數 1020 閱讀 2861

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

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

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

輸入

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

每組資料有兩行,第一行有乙個n,表示有n種食材排成了乙個圈。(2 <= 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的值比較就可以得到最後的結果。

#include long long a[50010];

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

#define min(x,y) (x) < (y) ? (x) : (y)

int main(int argc, char const *argv)

long long s1 = a[0],s2 = a[0],v1 = 0,v2 = 0,s = 0;

for(int i = 0; i < n; i++)

printf("%lld\n", max(s1,s-s2));

} return 0;

}

nyoj 螞蟻的難題(二)745

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

nyoj 745 螞蟻的難題(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 下雨了,下雨了,螞蟻搬家了。已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走...

NYOJ 745 螞蟻的難題(二)

時間限制 1000 ms 記憶體限制 65535 kb描述 下雨了,下雨了,螞蟻搬家了。已知有n種食材需要搬走,這些食材從1到n依次排成了乙個圈。小螞蟻對每種食材都有乙個喜愛程度值vi,當然,如果vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食...