算法基础day2

前缀和

 

 

#include <iostream>
using namespace std;
const int N=100010;
int n,m;
int a[N],s[N];
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i];while(m--){int l,r;scanf("%d%d",&l,&r);printf("%d\n",s[r]-s[l-1]);}return 0;
}

二维前缀和

#include <iostream>
#include <cstdio>
using namespace std;
const int N=1010;
int n,m,q;
int a[N][N],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",&a[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]+a[i][j];//求前缀和}}// for(int i=1;i<=n;i++)//     for(int j=1;j<=m;j++)//         cout << s[i][j]<<" ";while(q--){int x1,y1,x2,y2;scanf("%d%d%d%d", &x1,&y1,&x2,&y2);printf("%d\n",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]);//算子矩阵的和}return 0;
}
// 3 3 1
// 1 1 1 1 1 1
// 1 1 1
// 2 2 3 3

二维前缀和
题目
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。

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

输入格式
第一行包含三个整数n,m,q。

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

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

输出格式
共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
 

差分

#include <iostream>
using namespace std;
const int N = 100010;
int n,m;
int a[N],b[N];
void insert(int l,int r,int c){b[l]+=c;b[r+1]-=c;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=n;i++) insert(i,i,a[i]);//差分while(m--){int l,r,c;scanf("%d%d%d",&l,&r,&c);insert(l,r,c);}for(int i=1;i<=n;i++)b[i]+=b[i-1];for(int i=1;i<=n;i++) printf("%d ",b[i]);return 0;
}

二维差分--差分矩阵

 

#include<iostream>
using namespace std;
const int N=1010;
int n,m,q;
int a[N][N],b[N][N];
void insert(int x1,int y1,int x2,int y2,int c){b[x1][y1]+=c;b[x2+1][y1]-=c;b[x1][y2+1]-=c;b[x2+1][y2+1]+=c;
}
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",&a[i][j]);}}for(int i=1;i<=n;i++){      //二维差分for(int j=1;j<=m;j++){insert(i,j,i,j,a[i][j]);}}while(q--){int x1,y1,x2,y2,c;cin >>x1>>y1>>x2>>y2>>c;insert(x1,y1,x2,y2,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++){printf("%d ",b[i][j]);}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gooxi亮相2023中国数据与存储峰会展示最新存储解决方案

今日&#xff0c;以“数智创新&#xff0c;AI未来”为主题的2023 中国数据与存储峰会在北京顺利举行&#xff0c;Gooxi受邀参与并展示了最新存储服务器产品&#xff0c;搭配最新处理器平台&#xff0c;能够广泛应用在人工智能、数据分析、云端计算、数据存储和高性能计算等领域…

兔子目标检测数据集VOC格式3900张

兔子是一类可爱的哺乳动物&#xff0c;拥有圆润的脸庞和长长的耳朵&#xff0c;身体轻盈柔软。它们通常是以温和和友善的形象出现在人们的视野中&#xff0c;因此常常成为童话故事和卡通形象中的角色。 兔子是草食性动物&#xff0c;主要以各种草本植物为食&#xff0c;包括草…

python查找mongo中符合条件的json记录

一、需求&#xff1a; 之前有次需要临时查找mongo中存储的json串&#xff0c;符合特定条件的记录&#xff1b; 举个例子&#xff0c;mongo中记录如下图&#xff1a; 其中每条存储的数据大概为&#xff1a; [{"createUser": "Zxtech","paramName&qu…

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来&#xff0c;我国农业物联网技术飞速发展&#xff0c;基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一&#xff0c;多采用基于有线或无线结构的节点-上位机数据采集模式&#xff0c;节点数据访问模式缺乏灵活…

融资融券业务

基本业务名词 标的证券&#xff1a;允许融资买入的证券、融券卖出的证券。业务系统中分别设立融资标的证券池和融券标的证券池。标的证券在交易所定期公布的范围内由券商进一步选择。 担保证券&#xff1a;监管部门&#xff08;交易所等&#xff09;公布的有资格作为融资融券…

【Leetcode 39】组合总和 —— 回溯法

39. 组合总和 给你一个无重复元素的整数数组candidates和一个目标整数target &#xff0c;找出candidates中可以使数字和为目标数target的 所有不同组合&#xff0c;并以列表形式返回。你可以按**任意顺序 **返回这些组合。 candidates中的同一个数字可以 无限制重复被选取 。…

『CV学习笔记』NVIDIA GPU监控工具nvidia-smi/gpustat/nvtop/nvitop

NVIDIA GPU监控工具nvidia-smi/gpustat/nvtop/nvitop 文章目录 一. nvidia-smi(最有名,没有之一🤚🤚)二. gpustat(彩色并简约的显示🤚🤚🤚🤚)三. nvtop(完整的信息,需root权限apt安装,不是非常方便🤚🤚🤚)1. 交互式设置窗口2. 保存首选项3. 特定发行版的安…

喜讯丨智安网络实力上榜《嘶吼2023中国网络安全产业势能榜》

近日&#xff0c;嘶吼安全产业研究院正式发布《嘶吼2023中国网络安全产业势能榜》。智安网络凭借在网络安全行业领先的产品实力、专业的安全服务水平及多年累积的行业经验&#xff0c;从300余家厂商中脱颖而出&#xff0c;成为《中国网络安全产业势能榜》互联网行业势能厂商。 …

【Kotlin】Kotlin的stream流编程浅析

Kotlin是一门由JetBrains公司开发的静态类型JVM语言&#xff0c;其可以与Java无缝集成。与Java相比&#xff0c;Kotlin的语法更简洁、更具表达性&#xff0c;而且提供了更多的特性&#xff0c;比如&#xff0c;高阶函数、操作符重载、字符串模板。今天要浅析的stream流操作就来…

ACM32F403/F433 12 位多通道国产芯片,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中

ACM32F403/F433 芯片的内核基于 ARMv8-M 架构&#xff0c;支持 Cortex-M33 和 Cortex-M4F 指令集。芯片内核 支持一整套DSP指令用于数字信号处理&#xff0c;支持单精度FPU处理浮点数据&#xff0c;同时还支持Memory Protection Unit &#xff08;MPU&#xff09;用于提升应用的…

27、商城系统(九):ElasticSearch的安装,基本查询,高级查询,聚合

目录 一、基本概念 二、docker安装es,kibana 三、基本查询 1.查看es节点信息

mac node基本操作

1 查看所有版本 npm view node versions输出 2 查看已经安装的版本 n list3 安装指定版本 sudo -E n 16.0.04 切换版本 sudo n 16.0.05 查看版本 node -v

HTML+CSS+JS网页设计期末课程大作业 web课程设计 web前端开发 网页规划与设计

HTMLCSSJS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计 &#x1f4a5; 文章目录一、&#x1f6a9; 网站描述二、&#x1f38c; 网站介绍三、&#x1f3f4; 网站类型A 个人博客主题B 人物明星主题C 旅游主题D 游戏主题E 动漫主题F 美食主题G 校园主题H 企…

C2 CompilerThread11引起的CPU较高分析以及C2编译原理

1、触发机制和流程 CodeCache 深入了解_code cache-CSDN博客 这次我们来学习深入解析java虚拟机&#xff1a;C2编译器&#xff0c;编译流程吧-腾讯云开发者社区-腾讯云 2、JVM解释器和编译器 ​​​​​​j「JVM 编译优化」即时编译器_openjdk runtime environment (temuri…

K8S Helm安装RocketMQ standalone单机版,配置外网地址注册到nameserver中方便本地开发

K8S Helm安装RocketMQ standalone单机版&#xff0c;配置外网地址注册到nameserver中方便本地开发 helm地址 rocketmq 3.0.2 sir5kong/rocketmq helm repo add rocketmq https://helm-charts.itboon.top/rocketmq helm pull rocketmq/rocketmq tar -xvf rocketmq-3.0.2.t…

vue项目移动端点击图片放大预览(可拖拽,放大)

1.下载依赖 npm install vue-photo-preview -S 2.引入 main.js 中全局引入 import preview from vue-photo-preview import vue-photo-preview/dist/skin.css Vue.use(preview) 3. 应用 给图片加上 preview"0" 分组 <img preview"0" style"…

【XR806开发板试用】XR806串口驱动CM32M对小厨宝的控制实验

一.说明 非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动,并获得开发板试用。 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片&#xff0c;支持OpenHarmony minisystem和FreeRTOS&#xff0c;具有集成度高、…

用通俗易懂的方式讲解大模型:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统

随着人工智能技术的迅猛发展&#xff0c;问答机器人在多个领域中展示了广泛的应用潜力。在这个信息爆炸的时代&#xff0c;许多领域都面临着海量的知识和信息&#xff0c;人们往往需要耗费大量的时间和精力来搜索和获取他们所需的信息。 在这种情况下&#xff0c;垂直领域的 A…

C++ //例13.14 将一批数据以二进制形式存放在磁盘文件中。例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

C程序设计 &#xff08;第三版&#xff09; 谭浩强 例13.14 例13.15 例13.14 将一批数据以二进制形式存放在磁盘文件中。 例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。…

关于windows条件下pytorch使用torch.utils.data.DataLoader的numworkers值的确定

numworkers指的是进行数据集加载时使用的线程数量。如果设置为0就是使用单线程进行加载。最保险的方法就是将numworkers直接设置为0&#xff0c;这样在Windows条件下可以保证运行&#xff0c;但是可能速度会降低一些。 造成bug的原因&#xff1a;因为在Windows系统上&#xff0…