前缀和,差分#笔记
发布日期:2021-06-29 02:23:31
浏览次数:2
分类:技术文章
本文共 589 字,大约阅读时间需要 1 分钟。
前缀和
一维前缀和
例如数列a={2,3,4,7,9},则对应的前缀和数列为sum={2,5,9,16,25}
sum[i]=sum[i-1]+a[i]//其实就是记入累加的和
应用
求第L个数到第R个数的和。
二维前缀和
假设一个矩阵
1 | 2 | 4 | 3 |
---|---|---|---|
5 | 1 | 2 | 4 |
6 | 6 | 2 | 9 |
则该矩阵的二维前缀和为
1 | 3 | 7 | 10 |
---|---|---|---|
6 | 9 | 15 | 22 |
12 | 21 | 29 | 45 |
易得
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j];
应用
懂得懂得
差分
一维差分(即一维前缀和的逆过程)
例如数列a={(0),1,2,3,3,3,3},则对应的差分数列d={1,1,1,0,0,0}
d[i]=a[i]-a[i-1];
应用
多次对序列的一个区间加上一个数,并在最后询问某一位的数或是多次询问某一个的数。例如:使[l,r]每个数加上k,即d[l]–>d[l]+k,d[r+1]–>d[r+1]-k,最后再对a[l,r]做一次前缀和。
例如数列 a={1,2,3,3,3,3},对应的差分数列d={1,1,1,0,0,0}。给数列a的[3,5]加上1,a={1,2,4,4,4,3},对应的差分数列d={1,1,2,0,0,-1}, 相较于原差分序列只改变了端点d[l],d[r+1]。有效地降低了时间复杂度。
二维差分
转载地址:https://blog.csdn.net/YYDS777/article/details/113850645 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月03日 07时46分09秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python Matplotlib legend函数:为每条折线添加图例
2019-04-29
Python Matplotlib subplot函数详解:创建子图
2019-04-29
Python Matplotlib pie函数:绘制饼图
2019-04-29
Python Matplotlib绘制柱状图(bar和barh函数)详解
2019-04-29
Python Matplotlib scatter函数:绘制散点图
2019-04-29
Python Matplotlib contour和contourf:绘制等高线
2019-04-29
Python plot_surface(Axes3D)方法:绘制3D图形
2019-04-29
Python Pygal模块安装和使用
2019-04-29
Python Pygal常见数据图(折线图、柱状图、饼图、点图、仪表图和雷达图)详解
2019-04-29
Python读取JSON文件
2019-04-29
Python读取网络数据(request库和re模块)
2019-04-29
Python的特点(优点和缺点)
2019-04-29
Scrapy爬虫 - 获取知乎用户数据
2019-04-29
爬虫框架Scrapy实战一——股票数据爬取
2019-04-29
Python scrapy框架用21行代码写出一个爬虫
2019-04-29
python爬虫分析豆瓣中最新电影的影评
2019-04-29
Python爬虫的三种数据解析方式
2019-04-29
利用jieba第三方库对文件进行关键字提取
2019-04-29
python爬虫爬取美丽小姐姐图片美女壁纸
2019-04-29
利用url包抓取网页,最简单的python爬虫
2019-04-29