ACM入门之【前缀和】
前缀和在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入门之【前缀和】相关推荐
- C语言oj学生成绩输入和输出,『ACM入门』蓝桥杯ACM训练系统基本输入输出教程
在介绍训练场的OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内解决全英文问题,并在效率和速度以 ...
- c语言记忆化搜索,HNUSTC语言基础简单数据结构acm入门第一讲搜索.ppt
C语言基础,简单数据结构,ACM入门讲座搜索部分 Bjut:mark063 2010.10.30 1 Evaluation only. Created with Aspose.Slides for . ...
- ACM入门之【搜索】
搜索在ACM中是很重要的. 搜索一般分为DFS和BFS两大类,下面又划分很多的小类. 入门习题: 842. 排列数字 843. n-皇后问题 844. 走迷宫 845. 八数码
- ACM入门之【读入、输出优化】
本文主要是基于oiwiki的做的总结,未来也会做一系列的相关文章.如果想继续看的话可以关注专栏. 做这个专栏的目的是因为自己最近开始系统的再打一下基础.于是想写一个专栏便于喜爱ACM的初学者入门. 目 ...
- ACM入门及STL简介(转)
第一章 新手入门 1. ACM国际大学生程序设计竞赛简介 1) 背景与历史 1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕. ...
- 大牛对ACM入门菜鸟的一些话
http://www.cnblogs.com/yefengCrazy/p/5636677.html 首先就是我为什么要写这么一篇日志.原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入 ...
- 【转载】ACM入门 .
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- ACM入门指南[转]
前言: 这篇指南不对ACM/ICPC国际大学生程序设计竞赛进行介绍,计算机学子如果不了解的可以在百度上进行搜索查询,这里介绍的只是一个计算机学生想要在ACM/ICPC里进行发展的初学者.内容比较简单通 ...
- ACM入门练习与递推小结
一些实用的套路需要了然于心. 查表法实例(点击进入->ACM查表): 1.HDU2004 成绩转换 2.I00030 Grades conversion 3.HDU1048 The Hardes ...
最新文章
- Seven Microservices Anti-patterns
- 云炬60s看世界20211127
- Java –缺少字体–崩溃的应用程序!
- ubuntu13.10无法登陆
- python matplotlib_高效使用 Python 可视化工具 Matplotlib
- 基于JAVA+SpringMVC+Mybatis+MYSQL的高校学生健康档案管理系统
- java 怎么为泛型参数赋值_Java泛型讲解
- 加锁解锁PHP实现 -转载
- 2021年游戏开发中的10大编程语言:C++、Java、C#......
- matlab遗传算法之goat工具箱
- 一次性搞懂 HTTP、HTTPS、SPDY
- 智能家居设计原理c语言,基于STM32的小型智能家居系统设计
- 快速搭建一个小型博客网站
- hive sql报错:SQL 错误 [10004] [42000]: Error while compiling statement: FAILED: SemanticException [Error
- Solidworks中螺纹怎么收尾?
- 巴贝奇计算机科学思想,计算机之父巴贝奇_图灵_计算机科学之父
- Vertical-align属性应用(图片和文字垂直居中对齐)
- mac os 安装完整版opencv (with qt )
- 基于 Qt Quick+websocket 的Web扫描仪驱动开发
- 如何实施一套现代化的 IAM 系统?