zoukankan      html  css  js  c++  java
  • 子矩阵求和

    题目描述:

    读入一个n*m的矩阵,q次询问,每次询问一个子矩阵内数字权值和。

    输入格式:

    第一行三个整数n,m,q

    之后n行每行m个0到100的整数

    之后q行,每行四个整数x1,y1,x2,y2,表示要询问的子矩阵。

    输出格式:

    q行表示答案。

    样例输入1:

    5 4 1

    1 1 0 0

    1 0 0 0

    0 0 1 1

    1 1 1 1

    1 0 1 0

    2 2 5 3

    样例输出1:

    4

    约定:

    1<=n,m<=500, q<=1000000

    #include<cstdio>
    #include<vector>
    using namespace std;
    vector<int> map[100100];
    int main(){
        int N,M,Q,x;
        scanf("%d%d",&N,&M);
        scanf("%d",&Q);
        for(int i=0;i<=M;i++) map[0].push_back(0);//初始化
        for(int i=1;i<=N;i++){
            map[i].push_back(0);
            for(int j=1;j<=M;j++){
                scanf("%d",&x);
                map[i].push_back(map[i][j-1]+map[i-1][j]+x-map[i-1][j-1]);
            }
        }
        int x1,y1,x2,y2;
        while(Q--){
            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
            int ans=map[x2][y2]-map[x2][y1-1]-map[x1-1][y2]+map[x1-1][y1-1];
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    python字典类型
    python集合类型
    python元组类型
    python列表类型
    Python中的序列操作
    python字符串格式化输出
    python可变对象和不可变对象的解释
    Python数值类型
    Python循环结构用法
    python if条件判断语句
  • 原文地址:https://www.cnblogs.com/fangzm/p/14088761.html
Copyright © 2011-2022 走看看