hautoj--ykc想吃好吃的
題目描述
一天,ykc在學校閒的無聊,於是決定上街買點吃的,ykc很懶,本來就不是很像逛街,於是找來了czl幫他買,這裡應該有滑稽,而czl也不願為ykc買東西吃,但是ykc很強勢,非讓他去買,呢沒辦法了,然而czl還有很多事要做,沒呢麼多時間幫ykc,而這條小吃街又很長,有n家店,n有50000這麼大,並且這n家店的商品價值有所不同(要知道,商品的價值可能為負,哈哈,很神奇吧,但是czl肯定不會傻到賠錢,所以***),哇,czl要瘋了,他不想逛這麼久啊,他還有個毛病,他只會連續的逛若干家店,並且由於這條街的店很多,所以肯定不會是一條直線,換句話說就是首尾相連,即第n家店和第一家店是連在一起的,然而ykc希望czl買的東西價值最大,不然就會不開心,於是他就把艱難的任務交給你了,他真的不想浪費時間,你能幫助他嗎? 輸入
第1行:小吃街的長度n(2 <= n <= 50000)
第2 - n+1行:n個整數,代表每個店的商品價值 (-10^9 <= s[i] <= 10^9) 輸出
czl能買到的最大價值
樣例輸入6
-2 11 -4 13 5 -2
樣例輸出25
問題思路:
本題與普通的最大子段和問題不同的是,最大子段和可以是首尾相接的情況,即可以迴圈。那麼這個題目的最
大子段和有兩種情況。
(1)正常陣列中間的某一段和最大。這個可以通過普通的最大子段和問題求出。
(2)此陣列首尾相接的某一段和最大。這種情況是由於陣列中間某段和為負值,且絕對值很大導致的,那麼我
們只需要把中間的和為負值且絕對值最大的這一段序列求出,用總的和減去它就行了。
#include#include#includeusing namespace std;
#define n 55000
#define inf -99999999
int a[n],b[n];
int main()
for(i = 1; i <= n; i ++)
printf("%lld\n",ans);
} return 0;
}
HAUTOJ奇數最大子段和
題目描述 乙個大小為n的陣列a1到an 10 4 ai 10 4 請你找出乙個連續子段,使子段長度為奇數,且子段和最大。輸入 第一行為t 1 t 5 代表資料組數。之後每組資料,第一行為n 1 n 10 5 代表陣列長度。之後一行n個數,代表a1到an。輸出 每組資料輸出一行,表示滿足要求的子段和最...
HAUTOJ 1280 詭異的迷宮
時間限制 2 秒 記憶體限制 128 mb 提交 167 解決 24 題目描述 最近刷題 打遊戲 刷多了,一覺醒來發現自己到了乙個迷宮裡,怎麼也出不去了。這時傳來了一句話,告訴 必須按順序收集完所有的寶石,才能出迷宮。所謂的順序,就是按照每塊寶石上英文本母的順序。迷宮裡面還有一些傳送門,可以傳送到任...
HAUTOJ 1070 小汽車的位置
題目描述 有一輛智慧型小車,最初 時間為0 的位置為 0,0 我們想知道它最後的位置。小車以每小時10公里的速度向北移動 以北為y軸正向,以東為x軸正向 小車會受到一系列依照時間戳記排序的命令,1表示 向左轉 2表示 向右轉 3表 停止 每個命令的前面有乙個時間戳記,所以我們知道該命令是何時發出的。...