当前位置: 首页 > news >正文

牛客网 DP35 二维前缀和

一、问题描述

二、解题思路

整体思路

本题可以用二维前缀和矩阵来解决。

具体思路

定义:dp[i][j]表示从(1,1)位置到(i,j)位置,这段区间内所有元素的和(本题前缀和数组从下标1开始)

(1)构造二维前缀和矩阵,如图所示

dp[i][j]=A+B+C+D=(A+B)+(A+C)-A+D=dp[i-1][j]+sp[i][j-1]-dp[i-1][j-1]+arr[i][j]

(2)使用二维前缀和矩阵,如图所示

(x1,y1)~(x2,y2):

D=(A+B+C+D)-(A+B)-(A+C)+A=dp[x2][y2]-dp[x1-1][y2]-dp[x2][y1-1]+dp[x1-1][y1-1]

三、代码实现

时间复杂度:T(n)=O(m*n+q)

空间复杂度:S(n)=O(m*n)

#include <iostream>
#include <vector>
using namespace std;int main() {int m,n,q;cin>>m>>n>>q;vector<vector<long long>> arr(m+1,vector<long long>(n+1,0));for(int i=1;i!=m+1;i++)for(int j=1;j!=n+1;j++)cin>>arr[i][j];//构造前缀和矩阵vector<vector<long long>> dp(m+1,vector<long long>(n+1,0));for(int i=1;i!=m+1;i++)for(int j=1;j!=n+1;j++)dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+arr[i][j];//使用前缀和矩阵while(q--){int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;long long result=dp[x2][y2]-dp[x1-1][y2]-dp[x2][y1-1]+dp[x1-1][y1-1];cout<<result<<endl;}
}

http://www.xdnf.cn/news/1387459.html

相关文章:

  • 【算法】链表专题
  • C#连接SQL-Server数据库超详细讲解以及防SQL注入
  • 零基础json入门教程(基于vscode的json配置文件)
  • 序列化和反序列的学习
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(五)
  • Word - Word 查找文本中的特定内容
  • Redis vs Elasticsearch:核心区别深度解析
  • c++二叉搜索树
  • 在Linux的环境下安装GitLab(保姆级别)
  • Ubuntu下的压缩及解压缩
  • Llama-index学习文档
  • AI驱动万物智联:IOTE 2025深圳展呈现无线通信×智能传感×AI主控技术融合
  • 【Python办公】CSV按列去重工具
  • LangChain实战(三):深入理解Model I/O - Prompts模板
  • 聊聊Prompt Engineering (提示词工程)
  • Rust Web框架Axum学习指南之响应和异常封装
  • websocket建立连接过程
  • AI供应链优化+AI门店排班:蜜雪冰城降本20%、瑞幸提效的AI商业落地实战
  • 港科大开放世界长时域具身导航!LOVON:足式机器人开放词汇目标导航
  • LeetCode Hot 100 Python (1~10)
  • 1 分钟 Maya 动画渲染要多久?5 天还是 5 小时
  • linux系统学习(15.启动管理)
  • 第一百零二章:AI的“未来电影制片厂CEO”:多模态系统落地项目实战(完整 AI 视频创作平台)
  • 极飞科技AI智慧农业实践:3000亩棉田2人管理+产量提15%,精准灌溉与老农操作门槛引讨论
  • 组件的生命周期:`useEffect` 的威力与副作用处理
  • 随机森林的 “Bootstrap 采样” 与 “特征随机选择”:如何避免过拟合?(附分类 / 回归任务实战)
  • 华为云CCE的Request和Limit
  • Ethercat主从站移植时的问题记录(二)—无法进入OP状态且从站PDI中断不触发
  • 什么是Jmeter? Jmeter工作原理是什么?
  • linux上安装methylkit -- 安全下车版 (正经版: Linux环境下安装methylKit的实践与避坑指南)