一二维前缀和及差分(算法描述)
时间:2019-04-19
本文章向大家介绍一二维前缀和及差分(算法描述),主要包括一二维前缀和及差分(算法描述)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基本描述:
一维:
前缀和:结合数组前n项和理解
sn[0]=an[0]; for(int i=1;i<longth;i++)//初始化 sn[i]=an[i]+sn[i-1];
差分:
多次给定[l,r],标记l和r范围
令an[l]+k
an[r+]-r
多次操作后,利用辅助数组sn求an的前缀和即可得到标记的数组
二维:
前缀和:结合面积理解
#include <iostream> using namespace std; int an[10][10],sum[10][10]={0}; int main () { int n,m; cin>>n>>m; for(int i=1;i<=n;i++)//输入 for(int j=1;j<=m;j++) cin>>an[i][j]; for(int i=1;i<=n;i++)//初始化 for(int j=1;j<=m;j++)//为避免j-1,i-1越界,不使用最外边那一行,令其初始化为0: sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+an[i][j];//粉红色框定的面积等于红色框定的面积+绿色框定的面积-蓝色框定的面积+粉红的所处的点对应小框面积 for(int i=0;i<=n;i++) { for(int j=0;j<=m;j++) cout<<sum[i][j]<<' '; cout<<endl; } return 0; }
差分:
标记:an[左上]+=k;an[右下+1]+=k;an[右上+1]-=k;an[左下+1]-=k;达到标记的目的;
主要用处:
前缀和:多次询问区间和,
差分:标记一维区间或者二维区间
- 基于Nginx负载均衡方案
- Android 使用android-support-multidex解决Dex超出方法数的限制问题
- Netty 实现原理浅析
- 上海2017QCon个人分享总结
- 为最佳性能调优 Nginx
- 《微信小程序七日谈》- 第一天:人生若只如初见
- 类加载器详解
- 《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维
- 《微信小程序七日谈》- 第三天:玩转Page组件的生命周期
- 《微信小程序七日谈》- 第四天:页面路径最多五层?导航可以这么玩
- 《微信小程序七日谈》- 第五天:你可能要在登录功能上花费大力气
- 《微信小程序七日谈》- 第六天:小程序devtool隐藏的秘密
- boi剖析 - 基于webpack的css sprites实现方案
- 深入JDK源码之ThreadLocal类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- composer改源
- Android内存管理(四)Linux的内存管理机制
- JavaScript 技术篇-js通过xpath获取dom节点,js校验xpath唯一性。
- Python 错误使用tuple问题:TypeError: 'tuple' object does not support item assignment. 原因及解决办法
- E-BERT,电商领域语言模型优化实践
- PyQt5 技术篇-透明窗口设置方法,窗口透明度的设置
- 为hexo增加gitalk评论系统
- Python 技巧篇-用print打印输出但不换行方法
- gitalk 自动初始化
- 给hexo申请证书并设置https
- Python 面向对象-如何查看类的父类,外部如何获取类的名字
- Python操作excel:用xlwt设置excel单元格背景颜色,给字体加粗。【附】颜色表
- Python+selenium 自动化-获取当前页面的url地址,打开指定的url地址
- PyQt5 技术篇-窗口置顶不生效解决办法,setWindowFlags()设置不生效解决办法
- 使用hooks自动监测git仓库更改并拉取