795. 前缀和(acwing)
文章目录
- 795.前缀和
- 题目描述
- 前���和
795.前缀和
题目描述
输入一个长度为n的整数序列。
()接下来再输入m个询问,每个询问输入一对l, r。
对于每个询问,输出原序列中从第l个数到第r个数的和。
()输入格式
第一行包含两个整数n和m。
第二行包含n个整数,表示整数数列。
接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。
输出格式
共m行,每行输出一个询问的结果。
数据范围
1≤l≤r≤n,
1≤n,m≤100000,
-1000≤数列中元素的值≤1000
输入样例:
5 3 2 1 3 6 4 1 2 1 3 2 4
输出样例:
3 6 10
前缀和
这段代码是用来解决前缀和问题的,用于快速计算区间内所有数的和。下面是详细注释:
#include // 包含大部分常用的库 using namespace std; const int z=100010; // 定义常量z为100010,作为数组大小的上限 int a[z],s[z]; // a是输入的数列,s是前缀和数组 int main() { int n,m,i; // n是数列的长度,m是查询的次数,i是循环变量 scanf("%d %d",&n,&m); // 读入n和m for(i=1;i int l,r; scanf("%d %d",&l,&r); // 读入查询的区间[l, r] printf("%d\n",s[r]-s[l-1]); // 输出区间和,即s[r]减去s[l-1]的值 } return 0; }
The End