這道題目和最大連續子串行不同的是,要求子串行至少包含兩個元素。
用 sum[i] 表示sigma,即字首和
用 m[i] = min , m[0] = 0
這樣 sum[i]-m[i-2] 就表示以 i 結尾的至少包含兩個元素的最大連續子串行和,所以問題可以表示為求 ans = min
1 # include 23 # define inf 10545
intn, x, tmp;67
intcursum, minsum;
8int
ans;910
int min(int x, int y)
11int max(int x, int y)
1213
intmain()
1426
27if (ans > 0) printf("
%d\n
", ans);
28else printf("
game over\n");
2930
return0;
31 }
1006 求和遊戲
石柱上有一排石頭鍵盤,每個鍵上有乙個整數。請你在鍵盤上選擇兩個鍵,使這兩個鍵及其之間的鍵上的數字和最大。如果這個最大的和不為正,則輸出 game over 第1行 鍵的個數n。第2.n 1行 鍵上的數字整數 ai ai。100 ai 100 100 ai 100 對於70 的資料,2 n 1,000...
1006 求和遊戲
石柱上有一排石頭鍵盤,每個鍵上有乙個整數。請你在鍵盤上選擇兩個鍵,使這兩個鍵及其之間的鍵上的數字和最大。如果這個最大的和不為正,則輸出 game over 第1行 鍵的個數n。第2.n 1行 鍵上的數字整數 a i ai 100 a i 100 100 ai 100 對於70 的資料,2 n 1,0...
sjtu 1006 求和遊戲
c 程式編寫 該命題可以看做是求陣列的最大子陣列問題,且最大子陣列中元素最小個數人為2 即最大子陣列元素的個數不能為1 include using namespace std int main bool flag true for int i 0 i n i if result pi i if fl...