zoukankan      html  css  js  c++  java
  • 矩阵前缀和&矩阵的差分

    前缀和

    #include<iostream>
    using namespace std;
    
    const int N = 1010;
    
    int a[N][N];
    int n, m, q;
    
    int main(){
        cin >> n >> m >> q;
        
        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];
            }
            
        while(q --){
            int x1, y1, x2, y2;
            
            cin >> x1 >> y1 >> x2 >> y2;
            cout << a[x2][y2] - a[x2][y1 - 1] - a[x1 - 1][y2] + a[x1 - 1][y1 - 1] << endl;
        }
        
        return 0;
    }
    

    差分

    #include<iostream>
    using namespace std;
    
    const int N = 1010;
    
    int n, m, q;
    int a[N][N], b[N][N];
    
    int main(){
        cin >> n >> m >> q;
        
        for(int i = 1; i <= n; i ++)
            for(int j = 1; j <= m; j ++)
                cin >> a[i][j];
                
        for(int i = 1; i <= n; i ++)
            for(int j = 1; j <= m; j ++){
                b[i][j] = a[i][j] - a[i - 1][j] - a[i][j - 1] + a[i - 1][j - 1];
            }
            
        while(q --){
            int x1, y1, x2, y2, c;
            
            cin >> x1 >> y1 >> x2 >> y2 >> c;
            b[x1][y1] += c;
            b[x2 + 1][y1] -= c;
            b[x1][y2 + 1] -= c;
            b[x2 + 1][y2 + 1] += c;
        }
        
        for(int i = 1; i <= n; i ++)
            for(int j = 1; j <= m; j ++)
                b[i][j] += b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];
                
        for(int i = 1; i <= n; i ++){
            for(int j = 1; j <= m; j ++)
                cout << b[i][j] << ' ';
            cout << endl;
        }
        
        return 0;       
    }
    
  • 相关阅读:
    初探CSS
    初探CSS -3 语法
    初探 -1 JavaScript
    初探html-17 表单
    初探html-9 链接
    python 发送邮件
    检查xml文件
    python文件和目录操作方法大全(含实例)
    使用ADB无线连接Android真机进行调试
    安卓APP应用在各大应用市场上架方法整理
  • 原文地址:https://www.cnblogs.com/tomori/p/13469303.html
Copyright © 2011-2022 走看看