a693: 吞食天地
內容
好餓歐歐歐歐
有 n 個食物在你面前排成一排
每個食物有它的飽足度
你想知道把其中一段通通吃掉會獲得多少飽足度
輸入
多組測資以 EOF 結束
每組測資開始有兩個正整數 n,m (n,m <= 100000)
接下來一行有 n 個不超過一千的正整數依序代表每個食物的飽足度
接下來 m 行每行有兩個數字 l,r (1 <= l <= r <= n)
代表你想要吃掉第 l 個到第 r 個食物
3 3
1 2 3
1 3
1 2
2 3
輸出
對每組測資輸出 m 行,代表總飽足度
6
3
5
解題思路
基礎 DP 題,由於從 A 吃到 B 時不會有中間某個不吃的情況,所以總飽足度陣列可以儲存從零到該項的總飽足度,輸出時用相減的就能得到那段的飽足度。
在製作總飽足度陣列時,要計算第 i 項的總飽足度只要把 arr[i - 1] (0 到 i - 1 項的總飽足度) 加上第 i 項的飽足度即可。
完整程式碼
AC (62ms, 332KB)
|