![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前缀和与差分
策马奔腾向前冲
这个作者很懒,什么都没留下…
展开
-
前缀和
前缀和与差分互为逆运算对于一个给定的数列A,它得前缀和数列S定义为 一个部分和,即数列A中某个下标区间内的数的和,可以表示为前缀和相减的形式:注意:为了便于处理边界值,下标从1开始对于A的二维前缀和S,即通过画图不难得出如下的递推式:同理,对于任意一个边长为R的正方形,有例:子矩阵的和输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x...原创 2019-08-29 16:02:31 · 126 阅读 · 0 评论 -
差分
对于一个给定的数列A,它的差分数列B定义为,1、差分序列求前缀和可得原序列2、序列A的区间[L,R]加d,也就是把都加上d,其实就是它的差分序列B中,,其他的位置统统不改变。例如:一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4 -3这里注意得到的差分序列第一个数和原来的第一个数一样(相当于第一个数减0),差分序列最后比原序列多一个数(相当于0减最后一个数)...原创 2019-08-29 16:03:56 · 186 阅读 · 0 评论 -
二维差分
给定原矩阵a[i][j],构造差分矩阵b[i][j],使a[][]是b[][]的二维前缀和差分核心操作:给以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵中的所有数a[i][j]加上c。对差分数组的操作:b[x1][y1]+=cb[x1][y2+1]-=cb[x2+1][y1]-=cb[x2+1][y2+1]+=cb[x1][y1]+=cb[x1][y2...原创 2019-08-29 16:48:52 · 445 阅读 · 0 评论 -
IncDec序列
给定一个长度为n的数列a1,a2,…,an 每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入格式第一行输入正整数n。接下来n行,每行输入一个整数,第i+1行的整数代表ai。输出格式第一行输出最少操作次数。第二行输出最终能得到多少种...原创 2019-08-29 18:48:53 · 280 阅读 · 0 评论