1. 程式人生 > >一維前綴和 - 包含輸入輸出優化

一維前綴和 - 包含輸入輸出優化

ons 自己 mes 相減 || them 結果 put clu

2017-08-27 09:30:59

writer:pprp

很基礎的一個知識點,想要求區間內的和,可以考慮用兩個前n項和 相減

輸入輸出部分,采用自己寫的一個函數,用getchar() putchar()來讀取和輸出結果

用的時候應該註意具體的具體的類型應該根據題目選定

代碼如下:

/*
@theme:一維前綴和
@writer:pprp
@declare:a[i] = s[i] - s[i-1]
@date:2017/8/27
*/

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1000010;

int n, m, a[maxn];

//輸入優化 inline int read() { int X=0,w=1; char ch=0; while(ch<0 || ch>9) {if(ch==-) w=-1;ch=getchar();} while(ch>=0 && ch<=9) X=(X<<3)+(X<<1)+ch-0,ch=getchar(); return X*w; } inline void write(int x) { if(x<0) putchar(-),x=-x; if(x>9
) write(x/10); putchar(x%10+0); } int main() { n = read(); m = read(); a[0] = read(); //前n項求和 S[i] for(int i = 1; i < n ; i++) { a[i] = read(); a[i] += a[i-1]; } for(int i = 0 ; i < m ; i++) { int l, r; l = read(); r
= read(); if(l == 1) write(a[r-1]); else write(a[r-1] - a[l-2]); putchar(\n); } return 0; }

一維前綴和 - 包含輸入輸出優化