竞赛
考级
#include <iostream> using namespace std; int a[10000005],n,m; int s[10000005]; int main() { cin>>n>>m; for(int i=1; i<=n; i++) { cin>>a[i]; s[i]=s[i-1]+a[i]; } while(m--) { int l,r; cin>>l>>r; cout<<s[r]-s[l-1]<<endl; } return 0; }
Andy
法兰西玫瑰
chaizechen
#include <iostream> using namespace std; int n,m,num,a[100005]={},sum=0,v=0; int s[100005]={};//前缀和 前缀和 包含当前元素之前的所有元素之和 int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; s[i]=s[i+1]+a[i];//预处理前缀和 } for(int i=0;i<m;i++) { cin>>num>>v; sum=0; sum=s[v]+s[num+1]; cout<<sum<<endl; }
孟琪峰
首先,输入一次扫一次数组肯定不行,会TLE 因此,用前缀和数组一减就行
树上结了西瓜
#include<iostream> using namespace std; int a[100005],s[100005]={0},n,m,R,L; int main(){ cin>>n>>m; for(int i=1;i<=n;++i){ cin>>a[i]; s[i]=s[i-1]+a[i]; } for(int i=1;i<= m;++i){ cin>>R>>L; cout<<s[L]-s[R-1]<<endl; } return 0; }
chenyifei
前缀和就是把第1项到第i项的和存储在数组里
紫幽梦魇Grimm
#include <iostream> using namespace std; int main(){ int a[10000005]; int s[10000005]; int n,m; cin >> n >> m; for(int i=1;i<=n;i++){ cin >> a[i]; s[i]=s[i-1]+a[i]; } for(int y=1;y<=m;y++){ int l,r; cin >> l >> r; cout << s[r]-s[l-1] << endl; } return 0; }
137****7127
#include<bits/stdc++.h> using namespace std; int a[1000005]; int p[1000005]; int main(){ int n , q; cin >> n >> q; for(int i = 1;i <= n;i++) cin >> a[i] , p[i] = a[i] + p[i-1]; while(q--){ int l , r; cin >> l >> r; cout << p[r] - p[l-1] << endl; } return 0; }
DARK SPECTRE
#include <bits/stdc++.h> using namespace std; int a[100001]; int main(){ int n,m,l,r; cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; if(i!=0) a[i]+=a[i-1]; } for(int i=1;i<=m;i++) { cin>>l>>r; cout<<a[r]-a[l-1]<<endl; } return 0; }
Voldemort
#include <bits/stdc++.h> using namespace std; int a[1000005];//数据 int s[1000005];//前缀和 int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; s[i]=s[i-1]+a[i];//生成前缀和数组 } while(m--){//m次询问 int l,r; cin>>l>>r;//输出区间和[l,r] cout<<s[r]-s[l-1]<<endl; } return 0; }
小蒟蒻
林子慷
#include <bits/stdc++.h> using namespace std; int n,m; const int N = 1e5 + 10; int a[N],s[N]; int main() { cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> a[i]; for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + a[i]; while (m -- ) { int l,r; cin >> l >> r; cout << s[r] - s[l - 1] << endl; } return 0; }
吴卡 ━━╋══════➢
#include<bits/stdc++.h> using namespace std; long long a[100005],b[100005]={0}; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=b[i-1]+a[i]; } int l,r; for(int i=1;i<=m;i++){ cin>>l>>r; cout<<b[r]-b[l-1]<<endl; } }
爱困的苦恼
#include <bits/stdc++.h> using namespace std; const int N=100001; int n,m,a[N],s[N],l,r; int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; s[i]=s[i-1]+a[i]; } for(int i=1;i<=m;i++) { cin>>l>>r; cout<<s[r]-s[l-1]<<endl; } return 0; }
kali熊砸
远在天边的浪子
majmDZB
准
嫌疑を避ける ~~
潜龙暗虎