蓝桥杯2022年第十三届省赛真题-统计子矩阵(前缀和 + 双指针)
摘要:####解题思路
1.求每列前缀和(i,j 为上下边界,则可看成用一维解决)。
2.用双指针 l, r 维护左右边界,当 r 边界确定时(找到了 sum > k 的区间),左边界 l 往右移寻找符……
统计子矩阵(双指针)
解题思路:/*解题思路*//*使用双指针将A数组中的任意俩列的前缀和看做一个一维数组求解*//*在一维数组中a[n]={a[1],a[2],...,a[n]};类似题目求其中不大于k:9的数组矩阵个数*//*那么有俩个指针ij开始时同时指向a[1]:1sum=a[i]加到a[j]sum比k小则j++即
2659: 蓝桥杯2022年第十三届省赛真题-统计子矩阵
摘要:解题思路:二维前缀和然后循环判断当前区间是否符合小于等于K这样就需要指定两个点,每一个点有x,y方向坐标,这样就是4重循环,4个for会有三个点超时,代码如下#include<iostream>usi……
蓝桥杯2022年第十三届省赛-统计子矩阵(前缀和暴力 and 双指针优化)
##1.暴力解法--二维前缀和(只能过70%)```#includeusingnamespacestd;typedeflonglongLL;constintN=505;ints[N][N],n,m;LLres,k;intmain(){cin>>n>>m>>k;for(inti=1;is[i][j];s
蓝桥杯2022年第十三届省赛真题-统计子矩阵 预处理+双指针
解题思路:先进行预处理,把每一列矩阵进行压缩,即a[i][j]等于原矩阵第j列第1行到第i行的和。三层for循环,第一层枚举子矩阵的起始行b,第二层枚举子矩阵的终点行i,第三层枚举子矩阵的终点列r。起始列l初始为1,如果当前和超过了k,则使起始列l自增1,直到当前和不大于k。
2659: 蓝桥杯2022年真题-统计子矩阵(前缀和二维变一维)
```cpp#includeusingnamespacestd;constintN=510,M=510;ints[N][M];longlongn,m,k,cnt=0;//cnt要为longlong,不然会报错intmain(){cin>>n>>m>>k;for(inti=1;is[i][j];s[i]
C++统计子矩阵 前缀和+双指针
摘要:解题思路:如果只使用前缀和以及暴力 是拿不到全部的分数的,可以使用双指针优化内层循环,确定上下边界,如何枚举左右注意事项:参考代码:#include<iostream>#define N 505usi……