首页 > 其他分享 >前缀和

前缀和

时间:2024-03-01 21:56:39浏览次数:13  
标签:const 前缀 int 复杂度 d% Sij

作用

在求一串数的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

标签:const,前缀,int,复杂度,d%,Sij
From: https://www.cnblogs.com/LQWUI/p/18048040

相关文章

  • 14 CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C. Tenzing and Balls(dp+前缀
    思路:dp还是挺明显的,思路可以参考最长上升子序列有点dp的感觉\(f[i]\)表示考虑前\(i\)个数,的最大值当前数有两种删或不删不删:\(f[i]=f[i-1]\);删:\(f[i]=max{f[j-1]+i-j+1}\)这个转移是\(O(n^2)\)的显然时间上来不及考虑优化,第一层循环一定是省不了的考虑优化掉第二层循环......
  • 一维差分/前缀和
    算法笔记的第一篇文章前缀和:在做题时,我们经常会遇见这种问题:给你一个长度为\(n\)的序列\(a\),有\(q\)次询问,每次给出一个区间\(\left[L,R\right]\),请输出\(a_l+a_{l+1}+\cdots+a_r\)的和。对于这种问题,最为简单的方式莫过于\(\operatorname{O}(nq)\)暴力了。......
  • 11 .Codeforces Round 891 (Div. 3)E. Power of Points(推公式+前缀和优化)
    E.PowerofPoints题解参考#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=(a);i<=(b);++i)#definefep(i,a,b)for(inti=(a);i>=(b);--i)#define_for(i,a,b)for(inti=(a);i<(b);++i)#definepii......
  • 差分和前缀和
    蓝桥杯第14届中的一道题所学:题目描述小蓝拥有n×n大小的棋盘,一开始棋盘上全都是白子。小蓝进行了m次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所有操作做完后棋盘上每个棋子的颜色。输入格式输入的第一行包......
  • 前缀和算法
    一、简析前缀和有一系列元素\(A[a_0,~a_1,~...,~a_n,~...]\),前缀和\(pre\_sum[n]=A[0]+A[1]+···+A[n]\)。利用前缀和,我们可以很高效地得到\([L,~R]\)的区间和\(\sum_{i=L}^{R}A[i]=pre\_sum[R]-pre\_sum[L-1]\)。二、相关问题2.1题目简述P8649[蓝桥杯2017省B]......
  • 【算法】007_前缀树和贪心算法
    1.前缀树一个字符串类型的数组arr1,另一个字符串类型的数组arr2.arr2中有哪些字符,是arr1中出现的?arr2中有哪些字符是作为arr1中某个字符串前缀出现的?arr2中有哪些字符是作为arr1中某个字符串前缀出现的?pass:表示当前这个结点被经过的次数end:这个结点作为结尾的次数例如......
  • HydroOJ 从入门到入土(13)批量修改题号前缀
    题库的管理,无论是用前缀来分组,还是用域来分组,都有不好管理的地方,尤其是题号。有的时候导入了一堆题,导入完发现题号不是自己想要的,但删起来很麻烦,一个一个改更不现实,真是欲哭无泪。本文主要记录了一次批量修改题号前缀的过程,仅供参考。修改中涉及数据库操作,修改前一定要现在虚......
  • 高维前缀和(SOS DP)
    高维前缀和(SOSDP)通常求二维前缀和,用容斥来求但其实,完全可以先做一遍行的前缀和,再做一遍列的前缀和拓展到\(k\)维也是如此,可以在\(O(nk)\)的复杂度求前缀和但怎么和DP扯上关系?可以把第\(i\)维当作阶段,每一维的具体信息是状态先枚举阶段,表示当前固定其它维,只统计这一......
  • leetcode——数组算法——前缀和构建和应用
    leetcode——数组算法——前缀和构建和应用前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和303.区域和检索-数组不可变比如leetcode303.区域和(检索-数组不可变)题目介绍:给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left......
  • 基础算法(九)二维前缀和模板---以题为例
    输入一个 n 行 m的整数矩阵,再输入q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,q。接下来 n行,每行包含m 个整数,表示整数矩阵。接下来 q 行,每行包含四个......