首页 > 其他分享 >9.Acwing基础课第796题-简单-子矩阵的和

9.Acwing基础课第796题-简单-子矩阵的和

时间:2023-08-25 21:33:37浏览次数:33  
标签:796 int 矩阵 整数 基础课 1000 Acwing

9.Acwing基础课第796题-简单-子矩阵的和

题目描述

输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 ,,,,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入格式

第一行包含三个整数 n,m,q。

接下来 n 行,每行包含 m 个整数,表示整数矩阵。

接下来 q 行,每行包含四个整数 ,,,,表示一组询问。

输出格式

共 q 行,每行输出一个询问的结果。

数据范围

1≤n,m≤1000,
1≤q≤200000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤矩阵内元素的值≤1000

输入样例

3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4

输出样例

17
27
21

思路解析:

算法:

时间复杂度:*O(nlog(n))*

解题思路:

代码:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

using namespace std;

const int N = 1010;

int n, m, q;
int s[N][N];

int main()
{
    scanf("%d%d%d", &n, &m, &q);

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            scanf("%d", &s[i][j]);

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++) 
            s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];

    while (q--)
    {
        int x1, y1, x2, y2;
        scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
        printf("%d\n", s[x2][y2]  - s[x2][y1-1] - s[x1-1][y2] + s[x1-1][y1-1]);
    }

    system("pause");
    return EXIT_SUCCESS;
}

标签:796,int,矩阵,整数,基础课,1000,Acwing
From: https://www.cnblogs.com/codemagiciant/p/17658000.html

相关文章

  • 12.Acwing基础课第799题-简单-最长连续不重复子序列
    12.Acwing基础课第799题-简单-最长连续不重复子序列题目描述给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0∼1050∼105范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不......
  • 线性代数为什么是计算机专业的基础课程
    线性代数在机器学习中比较低阶的应用是矩阵运算,比如softmax分类器y^=σ(WTx+b)\hat{\mathbf{y}}=\sigma(W^T\mathbf{x}+\mathbf{b}),在这里矩阵形式使得书写、计算更方便,也能帮助理解模型(将矩阵看作是一种变换);高阶一点的应用在无监督学习中,可以参考奇异值分解(SVD)等矩阵分解方......
  • AcWing 868. 筛质数
    题目给定一个正整数$n$,请你求出$1∼n$中质数的个数。输入格式共一行,包含整数$n$。输出格式共一行,包含一个整数,表示$1∼n$中质数的个数。数据范围$1≤n≤10^6$输入样例:8输出样例:4思路朴素筛选遍历到某个数值$i$我们将它的倍数全部删除,如此反复,剩下的为$1......
  • 2.Acwing基础课第786题-简单-第k个数
    2.Acwing基础课第786题-简单-第k个数题目描述给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含整数n和k。第二行包含n个整数(所有整数均在1~范围内),表示整个数列。输出格式输出一个整数,表示数列的第k......
  • 5.Acwing基础课第792题-简单-高精度减法
    5.Acwing基础课第792题-简单-高精度减法题目描述给定两个正整数(不含前导0),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤100000输入样例3211输出样例21思路解析:算法:时间复杂度:*O(nlog(n)......
  • 4.Acwing基础课第791题-简单-高精度加法
    4.Acwing基础课第791题-简单-高精度加法题目描述给定两个正整数(不含前导0),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤100000输入样例1223输入样例35思路解析:算法:时间复杂度:*O(nlog(n))*解题思路:代码:......
  • 7.Acwing基础课第794题-简单-高精度除法
    7.Acwing基础课第794题-简单-高精度除法题目描述给定两个非负整数(不含前导0)A,B,请你计算A/B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000,B一定不为......
  • 6.Acwing基础课第793题-简单-高精度乘法
    6.Acwing基础课第793题-简单-高精度乘法题目描述给定两个非负整数(不含前导0)A和B,请你计算A×B的值。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共一行,包含A×B的值。数据范围1≤A的长度≤100000,0≤B≤10000输入样例23输出样例6思路解析:......
  • 1.Acwing基础课第785题-简单-快速排序
    1.Acwing基础课第785题-简单-快速排序题目描述给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1~范围内),表示整个数列。输出格式输......
  • AcWing 867. 分解质因数
    题目给定$n$个正整数$a_i$,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。输入格式第一行包含整数$n$。接下来$n$行,每行包含一个正整数$a_i$。输出格式对于每个正整数$a_i$,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,......