前缀和在ACM中算是一个简单易学,且十分重要的一个算法。

前缀和的种类:

  • 一维前缀和
  • 二维前缀和
  • 高维前缀和(比较少见)
  • 树上前缀和

对于一维前缀和,它可以解决O(1)的时间复杂度来获取某一区间的和。
对于二维前缀和,它可以解决O(1)的时间复杂度来获取某一矩阵的和。

前缀和的弊端,即前缀和数组构造后不能再次的修改,否则还得再次构建,时间复杂度会大幅度的上升。

一维前缀和模板:

const int N=1e5+10;
int a[N],s[N],n;
void init()//构造前缀和
{for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];
}
int query(int l,int r)//查询[l,r]的和
{return s[r]-s[l-1];
}

一维前缀和相关习题:
U69096 前缀和的逆 代码地址
U53525 前缀和(例题) 代码地址
AT2412 最大の和 代码地址
P3131 [USACO16JAN]Subsequences Summing to Sevens S 代码地址

二维前缀和模板:

const int N=1e3+10;
int a[N][N],s[N][N],n,m;
void init()
{for(int i=1;i<=n;i++)for(int j=1;j<=m;j++) s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
}
int query(int x,int y,int xx,int yy)//(x,y)矩阵的左上角的坐标,(xx,yy)矩阵右下角的坐标
{int sum=s[xx][yy]-s[x-1][yy]-s[xx][y-1]+s[x-1][y-1];return sum;
}

二维前缀和相关习题:
P1387 最大正方形 代码地址

ACM入门之【前缀和】相关推荐

  1. C语言oj学生成绩输入和输出,『ACM入门』蓝桥杯ACM训练系统基本输入输出教程

    在介绍训练场的OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内解决全英文问题,并在效率和速度以 ...

  2. c语言记忆化搜索,HNUSTC语言基础简单数据结构acm入门第一讲搜索.ppt

    C语言基础,简单数据结构,ACM入门讲座搜索部分 Bjut:mark063 2010.10.30 1 Evaluation only. Created with Aspose.Slides for . ...

  3. ACM入门之【搜索】

    搜索在ACM中是很重要的. 搜索一般分为DFS和BFS两大类,下面又划分很多的小类. 入门习题: 842. 排列数字 843. n-皇后问题 844. 走迷宫 845. 八数码

  4. ACM入门之【读入、输出优化】

    本文主要是基于oiwiki的做的总结,未来也会做一系列的相关文章.如果想继续看的话可以关注专栏. 做这个专栏的目的是因为自己最近开始系统的再打一下基础.于是想写一个专栏便于喜爱ACM的初学者入门. 目 ...

  5. ACM入门及STL简介(转)

    第一章 新手入门 1.      ACM国际大学生程序设计竞赛简介 1)      背景与历史 1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕. ...

  6. 大牛对ACM入门菜鸟的一些话

    http://www.cnblogs.com/yefengCrazy/p/5636677.html 首先就是我为什么要写这么一篇日志.原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入 ...

  7. 【转载】ACM入门 .

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  8. ACM入门指南[转]

    前言: 这篇指南不对ACM/ICPC国际大学生程序设计竞赛进行介绍,计算机学子如果不了解的可以在百度上进行搜索查询,这里介绍的只是一个计算机学生想要在ACM/ICPC里进行发展的初学者.内容比较简单通 ...

  9. ACM入门练习与递推小结

    一些实用的套路需要了然于心. 查表法实例(点击进入->ACM查表): 1.HDU2004 成绩转换 2.I00030 Grades conversion 3.HDU1048 The Hardes ...

最新文章

  1. Seven Microservices Anti-patterns
  2. 云炬60s看世界20211127
  3. Java –缺少字体–崩溃的应用程序!
  4. ubuntu13.10无法登陆
  5. python matplotlib_高效使用 Python 可视化工具 Matplotlib
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的高校学生健康档案管理系统
  7. java 怎么为泛型参数赋值_Java泛型讲解
  8. 加锁解锁PHP实现 -转载
  9. 2021年游戏开发中的10大编程语言:C++、Java、C#......
  10. matlab遗传算法之goat工具箱
  11. 一次性搞懂 HTTP、HTTPS、SPDY
  12. 智能家居设计原理c语言,基于STM32的小型智能家居系统设计
  13. 快速搭建一个小型博客网站
  14. hive sql报错:SQL 错误 [10004] [42000]: Error while compiling statement: FAILED: SemanticException [Error
  15. Solidworks中螺纹怎么收尾?
  16. 巴贝奇计算机科学思想,计算机之父巴贝奇_图灵_计算机科学之父
  17. Vertical-align属性应用(图片和文字垂直居中对齐)
  18. mac os 安装完整版opencv (with qt )
  19. 基于 Qt Quick+websocket 的Web扫描仪驱动开发
  20. 如何实施一套现代化的 IAM 系统?

热门文章

  1. dedecms织梦修改标题默认长度
  2. VBS 自动打开软件
  3. 透过源码看Session
  4. 000-SQL Server
  5. 在ubuntu14.04 64位中使用jd-gui
  6. Ubuntu下千千静听Audacious的安装步骤详解
  7. (总结)Linux的/etc/services文件简析
  8. BLE-NRF51822教程-RSSI获取
  9. 下载的VS2017工程编译出错的问题
  10. test_bit、set_bit和clear_bit