【统计子矩阵——部分前缀和+双指针】

题目

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 510;
int s[N][N];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    int n, m, k;
    cin >> n >> m >> k;
    
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
        {
            cin >> s[i][j];
            s[i][j] += s[i-1][j];
        }
    
    ll ans =  0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            for(int l = 1, r = 1, sum = 0; r <= m; r++)
            {
                sum += s[j][r] - s[i-1][r];
                while(sum > k)
                {
                    sum -= s[j][l] - s[i-1][l];
                    l++;
                }
                
                ans += r - l + 1;
            }
        }
    }
    
    cout << ans;
}
相关推荐
CYRUS_STUDIO33 分钟前
破解 VMP+OLLVM 混淆:通过 Hook jstring 快速定位加密算法入口
android·算法·逆向
?abc!2 小时前
(哈希)128. 最长连续序列
算法·leetcode·哈希算法
Zephyrtoria2 小时前
动态规划:01 背包(闫氏DP分析法)
java·算法·动态规划
范纹杉想快点毕业2 小时前
解析Qt文件保存功能实现
java·开发语言·c++·算法·命令模式
Uyker3 小时前
前端与后端主流框架分类及关键特性
前端·算法·django
2301_799084674 小时前
Codeforces Round 1032 (Div. 3)
数据结构·c++·算法
岁忧4 小时前
(LeetCode 每日一题) 2016. 增量元素之间的最大差值 (数组)
java·c++·算法·leetcode·职场和发展·go
Gyoku Mint4 小时前
机器学习×第十二卷:回归树与剪枝策略——她剪去多余的分支,只保留想靠近你的那一层
人工智能·算法·机器学习·数据挖掘·pycharm·回归·剪枝
Muisti4 小时前
c++读写锁
jvm·算法