前綴和模板

前綴和可以常數時間查詢數組區間和,在輸入數組的時候順便預處理。

// 前綴和算法可以O(1) 查詢數組區間和
// sum數組用於保存前綴和,sum[i]表示A[0,i]的和
#include <iostream>
using namespace std;
int A[15];
int sum[15];
int main() {
	int n; cin >> n;
	// 讀取數據同時初始化前綴和數組
	for (int i = 1; i <= n; i++) {
		cin >> A[i];
		sum[i] = sum[i-1] + A[i];
	}
	int a,b;
	while (cin >> a >> b) { // a到b的和即是sum[b]-sum[a-1]
		cout << sum[b] - sum[a-1] << endl;
	}

	return 0;
}

輸入

9
1
2
3
4
5
6
7
8
9
1 4
2 6
1 9

輸出

10
20
45
發佈了103 篇原創文章 · 獲贊 23 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章