題目連結: https://zerojudge.tw/ShowProblem?problemid=a693

# 解題思路

運用前綴和的辦法解決這問題吧
一維陣列變數 A [10001], S [10001]
輸入資料 A [] 的同時建立累加表 S []
S [i] = A0+A1+...+Ai (前面 i 項的總和)

之後,從 a 項到 b 項的總和 = S [b] - S [a-1]

(這是 DP 的觀念之一喔~)

# 程式碼

#include<iostream>
using namespace std;
int main(){
    int n,m,hun[100001],S[100001]={0};
    while(cin>>n>>m){
        for(int i=1;i<=n;i++){
            cin>>hun[i];
            S[i]=S[i-1]+hun[i];
        }
        for(int i=0;i<m;i++){
            int l,r,sum;
            cin>>l>>r;
            sum=S[r]-S[l-1];
            cout<<sum<<endl;
        }
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay