1276: 求和游戏
1276: 求和游戲
Time Limit: 1 Sec Memory Limit: 12 MB
Submit: 463 Solved: 77
[Submit][Status][Web Board]
Description
小明有n個(gè)球排成一行,每個(gè)球上有個(gè)數(shù)字。現(xiàn)在小明選擇兩個(gè)球,使這兩個(gè)球及其這兩個(gè)球之間的數(shù)字和最大。如果這個(gè)最大的和不為正,則輸出“Game Over”。
Input
第一行輸入T,有T組數(shù)據(jù)。
每組數(shù)據(jù):輸入n(1<n<1000000 ),再輸入n個(gè)整數(shù),表示第1個(gè)球到第n個(gè)球上的數(shù)字,每個(gè)球上的數(shù)字大于-100,小于100。
Output
對(duì)于每組數(shù)據(jù),輸出最大和或者”Game Over“,占一行。
Sample Input
6 5 3 -5 7 -2 8 3 -1 2 3 4 -1 1 -111 1111 3 -1 -2 -3 3 1 -1 0 6 100 -1 -1 -1 -1 -1 -1Sample Output
13 5 1001 Game Over Game Over 99HINT
Source
SJTU
/*
動(dòng)態(tài)規(guī)劃(最大子段和問題)
補(bǔ)一個(gè)此類問題鏈接:https://www.luogu.org/problem/P1115
先把這個(gè)問題分解為3個(gè)數(shù)的子問題,
假設(shè)這上三個(gè)數(shù):a1 a2 a3
要 求解這組數(shù)據(jù)中 區(qū)間的最大和
這組數(shù)據(jù)有這三種情況:
a1 a2
a2 a3
a1 a2 a3
仔細(xì)想想,如何模擬這三種情況:
先設(shè)定
sum = a1 + a2;
maxs = sum;
那就成了加上a3之前要不要舍棄a1這問題了,
那什么時(shí)候應(yīng)該舍棄a1?
如果a1是個(gè)負(fù)值,那肯定要舍棄掉它,如何判斷呢?如果sum > a2 ,a1肯定是個(gè)正數(shù),==的話a1=0,舍不舍棄都沒關(guān)系,<的話肯定是個(gè)負(fù)數(shù),所以如果
sum < a2,就sum = sum - a1 + a3(第一個(gè)個(gè)區(qū)間和用maxs存好了),否則sum = sum + a3;
因?yàn)楹髢煞N情況只會(huì)取其一(而且是更大的那個(gè),取決于a1是否>0)
那么:
ans = max(maxs,sum)
子問題解決了,類推就行
*/
Ac_code:
總結(jié)
以上是生活随笔為你收集整理的1276: 求和游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1126: 第二章:我们都有梦想
- 下一篇: LD(Levenshtein dista