蓝桥集训之统计子矩阵

统计子矩阵

  • 核心思想:矩阵前缀和 + 双指针

    • 用i和j双指针 遍历所有子矩阵的列
    • 用s和t双指针 遍历所有子矩阵的行
    • 求其子矩阵的和 若>k 将s向下移动 矩阵和必定减小(元素个数减少)
    • 直到满足<=k 因为列一定 行数即为方案数 (从t行往上数到s行 共t-s+1个区间t,tt-1,t....s,t)
cpp 复制代码
  #include<iostream>
  using namespace std;
  const int N = 510;
  typedef long long LL;
  int a[N][N];
  int n,m,k;
  
  int main()
  {
      cin>>n>>m>>k;
      for(int i=1; i<=n; i++){
          for(int j=1; j<=m; j++){
              cin >> a[i][j];
              a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1];  //求前缀和数组
          }
      }
      LL res = 0;
      for(int i=1;i<=m;i++)  //遍历列
      {
          for(int j=i;j<=m;j++)
          {
              for(int s=1,t=1;t<=n;t++)  //遍历行
              {
                  while(s<=t && a[t][j] - a[s-1][j] - a[t][i-1] + a[s-1][i-1] > k)
                      s++;
                  if(s<=t) res += t-s+1;
              }
          }
      }
      cout<<res;
  }
相关推荐
kisshyshy15 小时前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
猿人谷1 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络1 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法
复杂网络1 天前
基于 Stable Diffusion 架构的视觉大模型代表性工作与原理深度解析
算法
MrZhao4001 天前
Agent Loop 如何用 Hook 扩展:权限、日志与工具拦截
算法
MrZhao4001 天前
Agent 为什么需要 Skills:别把所有知识都塞进 system prompt
算法
JieE2122 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2123 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack204 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树4 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色