一、前缀和

一维前缀和

  顾名思义,不再赘述。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N =1e6+10;
int n,m;
int a[N],sum[N];int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i];}while(m--){int l,r;scanf("%d%d",&l,&r);printf("%d\n",sum[r]-sum[l-1]);}return 0;
}

二维前缀和

  类似于容斥原理,手动画图很好理解。

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 1010;
int a[N][N],sum[N][N];
int n,m,q;
int main()
{scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];}while(q--){int x1,y1,x2,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);printf("%d\n",sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1]);}return 0;
}

二、差分

  差分可以说是前缀和的逆运算。

  设原序列为a1,a2,…an,则该序列的差分序列b1,b2,…,bn满足如下条件:ai = b1 + b2 + … + bi

一维差分

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1e5+10;
int a[N],b[N];
int n,q;
int main()
{scanf("%d%d",&n,&q);for(int i=1;i<=n;i++){scanf("%d",&a[i]);b[i]=a[i]-a[i-1];}while(q--){int l,r,c;scanf("%d%d%d",&l,&r,&c);b[l]+=c;b[r+1]-=c;}int sum=0;for(int i=1;i<=n;i++){sum+=b[i];printf("%d ",sum);}return 0;
}

二维差分

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N =1010;
int a[N][N],b[N][N];
int n,m,q;
int main()
{scanf("%d%d%d",&n,&m,&q);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1];}while(q--){int x1,y1,x2,y2,c;scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&c);b[x1][y1]+=c;b[x2+1][y1]-=c;b[x1][y2+1]-=c;b[x2+1][y2+1]+=c;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+b[i][j];printf("%d ",a[i][j]);}printf("\n");}return 0;
}

附链接

一维前缀和

二维前缀和

一维差分

二维差分

转载于:https://www.cnblogs.com/ninedream/p/11537576.html

基本算法——前缀和与差分相关推荐

  1. 0x03.基本算法 — 前缀和与差分

    目录 一.前缀和 二.二维前缀和 1.二维前缀和的修改和求和 0. NOI 2003激光炸弹(二维前缀和) 1.牛妹吃豆子(二维前缀和模板,修改+求和) 2.静态数组的区间求和问题 3.静态维护区间加 ...

  2. c++算法基础必刷题目——前缀和与差分

    文章目录 前缀和与差分算法: 1.校门外的树 2.值周 3.中位数图 4.激光炸弹 5.二分 6.货仓选址 前缀和与差分算法:   前缀和与差分算法主要是为了快速求出某个区间的和,例如有一个数组a[1 ...

  3. Acwing算法基础【1】基础(三)前缀和与差分

    目录 三.前缀和与差分 3.1 前缀和 3.1.1 一维前缀和的算法思想 3.1.2 一维前缀和的代码实现 3.1.3 二维前缀和的基本思想 3.1.4 二维前缀和的代码实现 3.2 差分 3.2.1 ...

  4. 基本算法之前缀和与差分的是使用

    前缀和与差分 前缀和 鸣谢 二维前缀和 激光炸弹 差分 求差分 差分求区间修改 增减序列 最高的牛 前缀和 鸣谢 添加链接描述 和 添加链接描述 二维前缀和 激光炸弹 题目链接 解题思路: 解法思路: ...

  5. 前缀和,差分算法训练

    知识点: 一维前缀和 二维前缀和 一维差分 二维差分 题目: 蓝桥杯2017初赛-k倍区间-前缀和 [蓝桥杯2018初赛]递增三元组-双指针,枚举,排序,前缀和

  6. 算法基础(2) | 高精度、前缀和、差分

    文章目录 一.高精度 1.1 高精度加法 1.2 高精度减法 1.3 高精度乘法 1.4 高精度除法 二.前缀和 2.1 一维前缀和 2.2 二前缀和 三.差分 3.1 一维差分 3.2 二维差分 四 ...

  7. 基础算法(二):高精度/前缀和与差分

    目录 一.高精度 加法高精度 减法高精度 乘法高精度(大数乘以小数) 除法高精度(高精度整数除以低精度整数) 二.前缀和与差分 一维前缀和 二维前缀和 差分 二维差分 一.高精度 数组下标低位存储数字 ...

  8. 信奥中的数学:前缀和与差分、大整数开方技巧

    [算法2-1]前缀和与差分 [算法2-1]前缀和与差分 - 题单 - 洛谷 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂) 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)_林深不见鹿 的博 ...

  9. 前缀和与差分 图文并茂 超详细整理(全网最通俗易懂)

    目录 1.前缀和 2.前缀和算法有什么好处? 3.二维前缀和 4.差分 5.一维差分 6.二维差分 1.前缀和 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的 ...

最新文章

  1. RabbitMQ(九):RabbitMQ 延迟队列,消息延迟推送(Spring boot 版)
  2. canvas三角函数模拟水波效果
  3. tensorflow笔记
  4. 对比学习效果差?谷歌提出弱语义负样本,有效学习高级特征!
  5. matplotlib的colorbar设置显示的刻度个数和指定的刻度值
  6. php限制ip访问次数 并发_PHP实现redis限制单ip、单用户的访问次数功能示例
  7. 树的几种遍历方式(递归/非递归)
  8. MFC使用简单总结(便于以后查阅)
  9. 【小工匠聊Modbus】07-错误响应
  10. native react 更新机制_React Native 热更新实现(客户端 + 服务器端)
  11. 测试用例之黑盒测试方法
  12. java实现串口通信 485协议
  13. Android 自定义表格(第一行及第一列固定,其他列可滑动)
  14. Upgraded Edition
  15. .Net学习平台有很多,最快捷的是在这里?
  16. 计算机科学家安内尔,历届诺贝尔生理学或医学奖获奖者简介
  17. W ndows7安装Hp1020,Windows7系统怎么安装惠普hp1020打印机
  18. 帝国时代3亚洲王朝怎么控制军营训练其它文明的兵种
  19. python中pip下载的代理设置
  20. 涂抹式水光针的使用方法你知道吗?

热门文章

  1. 批量文件中加前缀、word删除空白行、删除含有某一个首字母的行
  2. winx修改计算机用户名,怎么修改我的电脑用户名win10
  3. vue 手动挂载组件 手动销毁组件_javascript原生手动分页组件
  4. php表示昨天_php获取今天、昨天、明天的日期
  5. wpsoffice安卓历史版本_安装老版本的手机APP
  6. 手机修图软件测试,照片秒变高清修图软件APP
  7. linux虚拟智能系统下载,RT-Thread v2.1.0alpha 技术预览,智能设备操作系统
  8. linux 深度 root,深度刷机让毫秒级一键ROOT成为现实
  9. 华为又对这一领域下手了,网友:太难了……
  10. 同盾“声纹识别建模大赛”首榜揭晓,成绩已达工业级一流水平!