時間限制: 1 sec
記憶體限制: 128 mb
提交: 19
解決: 6
狀態kaca在做了最大子段和問題之後,思考若陣列可以首尾相接的話最大子段和應該是多少。
有多組測試資料。
每一組的第一行是乙個整數n
n。 下面一行是n
n個以空格分開的整數a
i ai。
1≤n≤
10000
1≤n≤10000 0
≤|ai
|≤106
0≤|ai|≤106
對於每一組資料,輸出當陣列可以首位相接時的最大子段和,佔一行。
6-1 4 -1 -5 5 1
9boiltask 提交
論壇 乙個經典的入門dp;51nod演算法課程裡的模板題;
這道題跟最大連續子段和有區別在這裡涉及了迴圈陣列,那麼考慮一下其實這題求的是陣列中的最小連續子段和。
然後sum減去最小連續子段和就是迴圈陣列的最大連續子段和。
思路早就有了不過不知道為啥一直不過……
#include#include#includeusing namespace std;
int n;
typedef long long ll;
ll a[50010];
int main()
ll su=0;
ll su1=0;
ll ma=0;
ll ma1=0;
for(int i=1;i<=n;i++)
}else
}if(su1<=0)
}else}}
printf("%lld\n",max(ma,sum-(-ma1)));
}return 0;
}
迴圈陣列最大子段和(DP)
輸入 第1行 整數序列的長度n 2 n 50000 第2 n 1行 n個整數 10 9 s i 10 9 輸出輸出迴圈陣列的最大子段和。輸入示例 6 2 11 4 13 5 2輸出示例 分析 1 笨方法,我們可以用普通最大子段和的方法解決這個問題。我們從每個位置 斷開 環,然後按普通的最大子段和的方...
迴圈陣列最大子段和 dp
n個整數組成的迴圈序列a11,a22,a33,ann,求該序列如aii ai 1i 1 ajj的連續的子段和的最大值 迴圈序列是指n個數圍成乙個圈,因此需要考慮an 1n 1,ann,a11,a22這樣的序列 當所給的整數均為負數時和為0。例如 2,11,4,13,5,2,和最大的子段為 11,4,...
迴圈陣列的最大子段和
time limit 1000 ms memory limit 65536 kib submit statistic problem description 給出乙個陣列,陣列首尾相連,詢問最大連續子段和為多少。input 首先輸入乙個t表示t 1 t 50 組資料,然後每組資料首先輸入乙個n 1 ...