代码:

# 输入数据
n, m, q = map(int, input().split())
matrix = []
for i in range(n):matrix.append(list(map(int, input().split())))
query = []
for i in range(q):query.append(list(map(int, input().split())))ls = [[0] * (m + 1) for i in range(n + 1)]  # 初始化一个二维数组
# 这里尽量避免用两个列表来完成,因为这样会涉及到Python的深拷贝浅拷贝知识,初学者容易晕# 计算前缀和
for i in range(1, n + 1):for j in range(1, m + 1):ls[i][j] = ls[i - 1][j] + ls[i][j - 1] - ls[i - 1][j - 1] + matrix[i - 1][j - 1]# 最后的计算
for i in range(q):x1, y1, x2, y2 = query[i][0], query[i][1], query[i][2], query[i][3]print(ls[x2][y2] - ls[x1 - 1][y2] - ls[x2][y1 - 1] + ls[x1 - 1][y1 - 1])

这道题同样是使用前缀和的思想,再利用一些数学知识巧妙地通过求出的前缀和计算出子矩阵之和。跟之前发的一篇文章是差不多的,有兴趣的可以点开我的主页看上一篇文章。

从网上找到的算法分析:

来自(4条消息) AcWing 796. 子矩阵的和 【 二维前缀和 c++详细题解 】_林深不见鹿 的博客-CSDN博客

子矩阵的和(Python实现)相关推荐

  1. 取决于数学符号_设计就好像您的生活取决于它

    取决于数学符号 A blood-spattered Herman Watzinger slowly walks atop the waterlogged Kon-Tiki raft. He loses ...

  2. python矩阵的切片——获取子矩阵

    矩阵切片 矩阵为一个二维数列,所以矩阵的截取也需要包含行.列两个参数. 行.列参数切片 假设a是一个矩阵,a的截取就可写成:a[起始行 (包含): 终止行(不包含), 起始列 : 终止列],中括号中有 ...

  3. python算不算编程_Python 并不适合职场编程

    职场人员使用 Excel 进行数据处理已经成为家常便饭.不过相信大家一定有过很无助的情况,比如复杂计算.重复计算.自动处理等,再遇上个死机没保存,整个人崩溃掉也不是完全不可能. 如果学会了程序语言,这 ...

  4. python创建一个类似于国家象棋棋盘的0-1矩阵_NumPy练习题(全中文并附详细讲解)...

    100道 numpy 练习 1. Import the numpy package under the name np (★☆☆)') 导入numpy模块,设置别称为np import numpy a ...

  5. 《程序员代码面试指南第二版》Python实现(个人读书笔记)

    说明 最近在读左神的书---<程序员代码面试指南-IT名企算法与数据结构题目最优解(第二版)>以及看了一些左神的基础.进阶.高频等视频课程,为了记录自己的学习成果,并且方便以后查看,将自己 ...

  6. Python实现im2col和col2im函数

    今天来说说im2col和col2im函数,这是MATLAB中两个内置函数,经常用于数字图像处理中. 一般来说: 如果将图像分割成块的时候用的im2col参数为'distinct',那么用col2im函 ...

  7. python——opencv入门(一)

    1. OpenCV的结构 和Python一样,当前的OpenCV也有两个大版本,OpenCV2和OpenCV3.相比OpenCV2,OpenCV3提供了更强的功能和更多方便的特性.不过考虑到和深度学习 ...

  8. python 的csr_python的高级数组之稀疏矩阵

    稀疏矩阵的定义: 具有少量非零项的矩阵(在矩阵中,若数值0的元素数目远多于非0元素的数目,并且非0元素分布没有规律时,)则称该矩阵为稀疏矩阵:相反,为稠密矩阵.非零元素的总数比上矩阵所有元素的总数为矩 ...

  9. python矩阵左除_matlab学习笔记

    Matlab学习笔记 运算: 1.     算术运算(在矩阵意义下进行) +:要求矩阵同型,对应元素相加减,如果用标量和矩阵相加减,不同型就凉凉提示错误,那就将矩阵每个元素和数字相加减 -:同上 *: ...

最新文章

  1. 告别AI模型黑盒子:可解释性将是数据科学的下一个“超能力”
  2. Android开发之发送邮件功能的实现(源代码分享)
  3. Javascript:必须知道的Javascript知识点之“字面量和对应类型”
  4. 开源数据库表结构文档生成器
  5. 快快: 一点即玩的游戏客户端平台
  6. python 实例变量_Python的类变量和实例变量详解
  7. 蓝桥杯练习题十六进制转十进制
  8. 神结合!一招玩转K8s和微服务治理
  9. Qt学习: QFileDialog和QMessageBox的用法和程序示例
  10. 前端组件化的三种方案:
  11. 我的地盘我做主—玩转Python函数和变量
  12. android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
  13. php微信支付接口开发程序(一)
  14. PLSQL自动输入select * from|附件在cnblogs文件|
  15. linux lsiutil raid创建,使用MegaCli工具查看状态
  16. JavaScript高级编程之树节点搜索过滤的设计和实现
  17. java源码中的生词摘录成有道词典单词本
  18. 美国零售数据不及预期,非美延续反弹
  19. 30天自制C++服务器
  20. 核心设计——多种电源设计应用分享

热门文章

  1. 利用开放的isbn查询Api接口录入图书信息,工作效率倍增
  2. 如何解决国产TongWeb中间件启动之后无法访问网站管理后台界面
  3. 相机调试-tuning常见缩写汇总
  4. 待我君临天下,定许你一世繁华。
  5. Linux内核及主流Linux发行版对应关系汇总
  6. 谁可以参与初创股权分配?
  7. 【转】PS学堂之一:展示一下自己做的圆形印章
  8. 基于知识图谱的问答系统简单流程理解(开放型知识图谱、实体类型较多的图谱)
  9. 如何避免音频爆音/杂响?音频爆音常见的解决办法
  10. Travel(SPFA+思维)