微信上的网站怎么做的吗,网页设计结果分析怎么写,毕业设计 旅游网站建设,家政网站制作题源 记录一哈前缀和吧 题目描述 给定 n 个正整数组成的数列 a1,a2,⋯,an 和 m 个区间[li,ri]#xff0c;分别求这 m 个区间的区间和。 对于所有测试数据#xff0c;m≤10^5,ai≤10^4 输入格式 第一行#xff0c;为一个正整数 n 。 第二行#xff0c;为 n 个正…题源 记录一哈前缀和吧 题目描述 给定 n 个正整数组成的数列 a1,a2,⋯,an 和 m 个区间[li,ri]分别求这 m 个区间的区间和。 对于所有测试数据m≤10^5,ai≤10^4 输入格式 第一行为一个正整数 n 。 第二行为 n 个正整数 a1,a2,⋯,an 第三行为一个正整数 m 。 接下来 m 行每行为两个正整数 li,ri 满足1≤li≤ri≤n 输出格式 共 m 行。 第 i 行为第 i 组答案的询问。 输入输出样例 输入 #1复制 4
4 3 2 1
2
1 4
2 3 输出 #1复制 10
5 说明/提示 样例解释第 1 到第 4 个数加起来和为 10。第 2 个数到第 3 个数加起来和为 5。 对于 50% 的数据n,m≤1000 对于 100% 的数据1≤n,m≤10^51≤ai≤10^4 还是容易理解的就不多废话了
看代码
#includebits/stdc.h
using namespace std;
int n,m;
int l,r;
int a[100005]{0};
long long sum[100005]{0};
int get_sum(int l,int r)
{if(l1){return sum[r];}else{return sum[r]-sum[l-1];}
}
int main()
{cinn;for(int i1;in;i){cina[i];sum[i]sum[i-1]a[i];//记录每个位置之前的和}cinm;for(int i1;im;i){cinlr;coutget_sum(l,r)endl;}return 0;
}