前缀和

#一维前缀和:
1) 其实就是数列的前n项和,直接放代码:`

sum[1]=a[1];for(int i=2;i<=n;i++)sum[i]=sum[i-1]+a[i];/*其实也可以不开另外一个数组,用原数组即可*//*for(int i=2;i<=n;i++)a[i]+=a[i-1];*/

#二维前缀和:
*1)*二维前缀和的意义:
现有下面这样的一个二维矩阵:

1 2 4 3
5 1 2 4
6 3 5 9

那么其对应的二维前缀和的矩阵则为:

1  3  7  10
6  9  15 22
12 18 29 45

故二维前缀和的第i行第j列元素(设为sum[i][j])表示的意思是以sum[i][j]为右下角,sum[1][1]为左上角的元素之和(若sum[i][j]在第一行或第一列,则为sum[i][j]沿着这一行或列的元素之和)

*2)*二维前缀和示例代码:

/*这里从二维数组的第一行第一列开始存入数据,让第0行第0列的数据为0,就不需要另外写if语句讨论第一行与第一列的前缀和了*/
for (int i=1; i<=n; i++){for (int j=1; j<=m; j++){cin >> a[i][j];sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];}}

*3)*二维数组例题:
P1719 最大加权矩形
#题目描述
为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。

校长先给他们一个N*N矩阵。要求矩阵中最大加权矩形,即矩阵的每一个元素都有一权值,权值定义在整数集上。从中找一矩形,矩形大小无限制,是其中包含的所有元素的和最大 。矩阵的每个元素属于[-127,127],例如

0 –2 –7 0
9 2 –6 2
-4 1 –4 1
-1 8 0 –2
在左下角:

9 2
-4 1
-1 8
和为15。

几个女孩子有点犯难了,于是就找到了电脑组精打细算的HZH,TZY小朋友帮忙计算,但是遗憾的是他们的答案都不一样,涉及土地的事情我们可不能含糊,你能帮忙计算出校长所给的矩形中加权和最大的矩形吗?

输入格式
第一行:n,接下来是n行n列的矩阵。

输出格式
最大矩形(子矩阵)的和。

输入输出样例
输入 #1复制
4
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
输出 #1复制
15
说明/提示
n<=120

a)思路:
直接在所有二维前缀和里面找出最大的元素是不对的,因为最大矩阵之和可能是出现在子矩阵之中,再看看数据并不大可以暴力解决,所以这一题直接先枚举每一个前缀和可以表示的矩阵,再比较这个矩阵之和与其子矩阵之和的大小,下面直接放代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[125][125] = {0};
int sum[125][125] = {0};
int Max = -130;
int main()
{ios::sync_with_stdio(false);int n;cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)cin >> a[i][j];sum[1][1] = a[1][1];for(int i=1;i<=n;i++)for (int j = 1; j <= n; j++)sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + a[i][j];for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)for (int x = 0; x <= i; x++)for (int y = 0; y <= j; y++)Max = max(Max, sum[i][j] - sum[i - x][j] - sum[i][j - y] + sum[i - x][j - y]);cout << Max;return 0;
}

一维前缀和与二维前缀和相关推荐

  1. 前缀和、二维前缀和与差分的小总结

    在了解二维前缀和之前,我们首先需要了解一下什么是前缀和. 如果我给你一串长度为n的数列a1,a2,a3......an,再给出m个询问,每次询问给出L,R两个数,要求给出区间[L,R]里的数的和,你会 ...

  2. 模版 ----- 一维前缀和与二维前缀和

    一维前缀和 795. 前缀和 a[i] 的前 i 项和 s[i] 的递推公式:s[i]=s[i−1]+a[i]s[i] = s[i - 1] + a[i]s[i]=s[i−1]+a[i] 求出在 [l ...

  3. 一维前缀和,二维前缀和,一维差分,二维差分(翻译)

    练习一道题目 输入一个长度为n的整数序列. 接下来再输入m个询问,每个询问输入一对l, r. 对于每个询问,输出原序列中从第l个数到第r个数的和. 输入格式 第一行包含两个整数n和m. 第二行包含n个 ...

  4. 【算法】前缀和(一维前缀和与二维前缀和)

    前缀和是一种重要的预处理,能大大降低查询的时间复杂度. [一维前缀和] 给定一个数组A[1,2,--n],则它的前缀和数组为PrefixSum[1..n].定义为:PrefixSum[i] = A[0 ...

  5. 前缀和【一维前缀和与二维前缀和】

    全文目录

  6. 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度

    目录 1前缀和 1.1一维前缀和 1.2二维前缀和 2.题目 2.1输入描述: 2.2输出描述: 2.3输入 2.4输出 3.题目理解 3.1思路 4.程序 4.1运行结果 1前缀和 1.1一维前缀和 ...

  7. 【CS 1373】射命丸文(二维前缀和)

    emmmm又是一个东方人物[好吧这不是重点],下面的前缀和和二维前缀和才是23333 去寻找偷拍记者吧 题目描述 Description 在幻想乡,射命丸文是以偷拍闻名的鸦天狗.当然,文文的照相机可不 ...

  8. 牛妹吃豆子(二维前缀和模板,修改+求和)

    调了半天忘了要求两次前缀和了. 先对前缀和数组进行修改, 第一次求前缀和得到的是修改后的原矩阵,再求一次前缀和得到二维前缀和,然后根据容斥定理求区间的二维前缀和即可 #include<iostr ...

  9. leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)

    题目 https://leetcode.com/problems/range-sum-query-2d-immutable/ 题解 本题是 medium 难度,二维前缀和问题.相似题目有: Easy: ...

最新文章

  1. QT 的信号与槽机制介绍
  2. 晨风机器人突破限制_济南木偶戏传承人借力科技创造“木偶机器人”助非遗传承创新...
  3. jackson 驼峰注解_jackson - jackson annotations注解详解
  4. pagerank公式的理解
  5. lazy ideas in programming(编程中的惰性思想)
  6. java io 过滤数据,Java IO文件后缀名过滤总结
  7. CAFFE怎样跑起来
  8. 中国计算机学会通讯下载工具(简易爬虫)
  9. html5 js 手机剪切板,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...
  10. [实战]MVC5+EF6+MySql企业网盘实战(12)——新建文件夹和上传文件
  11. Python基础笔记(四)
  12. 外螺纹对照表_最新英制螺纹对照表(2016年完整版).
  13. imagecopyresampled要生成彩色却生成了灰色图片
  14. 处暑(Limit of Heat )节到了,应了解的生活常识
  15. Facebook账号注册需要注意什么?Facebook养号技巧?
  16. 计算机词汇怎么背,如何背诵英语词汇更有效?
  17. 真正了解@font face里font-weight的作用
  18. 被字句15个_小学语文必考知识:15类句式转换解题方法与练习(附答案)
  19. loadrunner入门教程(4) --loadrunner的下载
  20. 乐鑫M5GO自制睡眠小助手!新手。。。轻打脸

热门文章

  1. 汇众再观手游市场新风口-二次元游戏
  2. Python小项目——银行记账系统
  3. python 24时制 时间转换 ,将12小时制AM \ PM 转换为24小时制
  4. 怎么把两个视频合并成一个视频
  5. 机器人如何改变我们的世界
  6. linux l7filter命令行,Linux下使用l7-filter过滤QQ、迅雷、电驴等
  7. L2-L7全面的网络分析诊断
  8. GMAT750分冲刺-Quantitative
  9. 永辉系统服务器,永辉超市供应商服务系统(永辉超市供应商供零系统)
  10. Windows xp Embedded常见问题(转贴一)