前缀和

作用

在求一串数的Sn - Sm 时,降低时间复杂度O(n)为O(1)

代码

    #include<iostream>

    using namespace std;
    const int N = 100010;
    int n, m;

    int a[N], s[N];

    int main()
    {
    	scanf("%d%d", &n, &m);
    	for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    	
    	for (int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
    	
    	while (m--)
    	{
    		int a, b;
    		scanf("%d%d", &a, &b);
    		printf("d\n",s[b] - s[a - 1]);
    	}
    	return 0;
   
    }

二维前缀和

公式: Sij = S(i-1)j+Si(j-1)-S(i-1)(j-1)+aij
posted @ 2024-03-01 21:46  这就叫做C++  阅读(4)  评论(0编辑  收藏  举报