HDOJ 3421(序列分成多組非負段)

2021-06-28 22:16:57 字數 631 閱讀 6368

題目:

分析:給出乙個序列,要求將此序列分成連續的若干段,使得用盡量少的段就能組成最大和

首先,要求最大和,肯定是所有正數都要包含,如果序列有n個正數,則要將這n個數都包含在內,乙個正數單獨分成一段不一定是必要的,例如「..., 2, 3, ...",我們可以將2、3劃在同一段就可以減少要分的段數,即如果兩個正數連續,就把它們分在同一段中。那如果不連續,中間有若干個0呢,對,這種情況也可以將這些個正數放在同一段而不影響最大和,所以問題轉化為:如何判斷,組成最大和中相鄰的兩個正數x, y,是不是應該劃在同一段中;將剛才提到的兩種情況合一,則如果x, y之間沒有負數,就可以劃為同段。

另外,由於只需考慮臨近的兩個正數,因此編碼時我們不需要儲存整個序列,只需判斷當前數的符號以及兩個正數之間有無負數即可。

#include int main()

sum += i;

}else pre += i;

} if(k > 1) puts("");

printf("case %d:\n", k);

if(sum) printf("%d %d\n", seg, sum);

else puts("0 0");

} return 0;

}

hdoj5256序列變換 LIS變形

problem description 我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。input 第一行輸入乙個 t 1 t 10 表示有多少組資料 每一組資料 第一行輸入乙個 n ...

30 序列構造

給定兩個長度為 n 的正整數序列 a a1,a2,an 和 b b1,b2,bn 現在你選擇 k 個數構成序列 p p1,p2,pk 使得 序列 p 中的元素是不重複的1 pi n 其中1 i k2 ap1 a pk 大於序列 a 所有元素的和2 bp1 b pk 大於序列 b 所有元素的和 k 小...

192220序列型別

序列表示索引未非負整數的有序物件集合,包括字串,列表,元祖。說明 舉例 元祖跟裡面的逗號相關 mytuple a b c d type mytuple 列表根中括號相關 mylist a b c d type mylist 字串跟雙引號有關 mystr a,b,c,d type mystr 適用於所...