前缀和
•什么是前缀和、前缀积?
•前缀和、前缀积也称前缀和数组,前缀积数组。
•给一数组A,
•前缀和:新建一数组B,数组中每一项B[i]保存A中[0…i]的和;
•后缀和:新建一数组B,数组中每一项B[i]保存A中[i…n-1]的和;
•前缀积:新建一数组B,数组中每一项B[i]保存A中[0…i]的积;
•后缀积:新建一数组B,数组中每一项B[i]保存A中[i…n-1]的积;
•前缀和运用了预处理的思想,以预处理来减少修改和询问操作的时间复杂度
•给定一个序列和m次询问,每次询问有一个左端点L和右端点R,输出[L,R]区间的和
•O( n )预处理,每次询问o(1)即可完成
•
•当然还有很多作用,总之通过前缀和可以对整个区间的和操作,例如端点绝对值
•把前缀和上升到二维
给定一个n*n的矩阵,找一个最大的子矩阵,使得这个子矩阵里面的元素和最大
朴素算法
•枚举左上端点横坐标和纵坐标
•枚举右下端点横坐标和纵坐标
•再扫一遍
•O(n^6)
•一维前缀和优化,省去一维最后扫一遍的复杂度
O(n^5)
O(n^4)
O(n^3)