前缀和

题目1-一维前缀和-前缀和

输入一个长度为 n 的整数序列。

接下来再输入 m 个询问,每个询问输入一对 l,r。

对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。

输入格式
第一行包含两个整数 n 和 m。

第二行包含 n 个整数,表示整数数列。

接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。

输出格式
共 m 行,每行输出一个询问的结果。

数据范围
1≤l≤r≤n,
1≤n,m≤100000,
−1000≤数列中元素的值≤1000
输入样例:
5 3
2 1 3 6 4
1 2
1 3
2 4
输出样例:
3
6
10

#include<iostream>
#include<cstring>
#include<cstdio>using namespace std;const int N=100000;int a[N];
int sum[N];int main(){int m,n;int l,r;cin>>n>>m;for(int i=1;i<=n;i++)  cin>>a[i];for(int i=1;i<=n;i++){sum[i]=sum[i-1]+a[i];//sum保存a[i]的前缀和。}for(int i=1;i<=m;i++) {cin>>l>>r;cout<<(sum[r]-sum[l-1])<<endl;//注意是减去sum[l-1],因为包括a[i]本身。}return 0;
}

算法思想:首先在纸上计算每一段数组的和,存储在sum数组中(打表),然后直接根据sum计算的结果对题目进行求解。关键在于对sum数组的求和过程和使用过程,需要在纸上模拟。

题目2 二维前缀和-子矩阵的和

输入一个 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>
#include<cstring>
#include<cstdio>
#include<algorithm>using namespace std;int q[1001][1001];
int sum[1001][1001];int main(){int m,n,num;cin>>m>>n>>num;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){scanf("%d",&q[i][j]);sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+q[i][j];}}while(num--){int x1,x2,y1,y2;int res;cin>>x1>>y1>>x2>>y2;res=sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1];printf("%d\n",res);}return 0;}

算法思想:比一维前缀和稍微复杂一点,复杂之处在于在之上模拟的过程需要将对应的部分划分出来,求解得到的sum数组表示对应部分左上角区域的面积,然后再利用sum数组求解对应区域求和结果

前缀和算法(一维和二维)(超详细)
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. java一体化智慧工地信息管理平台源码 智慧工地APP源码

    智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、物联网和移动互联网等高科技技术手段&#xff0c;将施工区域各系统数据汇总&#xff0c;建立可视化数字工地。同时&#xff0c;围绕人、机、料、法、环等各方面关键因素&#xff0…...

    2023/9/29 11:07:21
  2. 电子学会Python二级知识点(自己整理)

    序列 Python的变量不需要声明&#xff0c;每个变量在使用之前必须赋值&#xff0c;变量被赋值以后&#xff0c;该变量才会被创建。常见的6个数据类型&#xff1a;数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)。6中数据类型分为两大类…...

    2023/9/29 11:07:10
  3. 【VUE复习·9】v-for 基础用法(循环渲染也叫列表渲染)

    总览 1.v-for 都能循环什么 2.用法 一、v-for 都能遍历什么 能循环的东西包括&#xff1a;数组、对象、字符串&#xff08;和java里面的3个引用数据类型一样&#xff09;、纯粹循环数量&#xff08;少用&#xff09; 二、用法 1.用法1&#xff1a;简单循环&#xff08;遍历…...

    2023/9/29 11:06:32
  4. 如何用WiFi实现无线定位

    一、WiFi主从模块设置 1. 实验器材 2. 实验步骤 ① 给控制板刷一套空的程序。 ② 将Esp8266模块连接到Bigfish扩展板上&#xff0c;并将扩展板插到控制板上。 ③ 在arduino的Seiral Monitor中&#xff0c;输入AT指令集&#xff0c;观察模块的相应应答。 3. 常用指令 ① 基础A…...

    2023/9/29 11:00:20
  5. 解决docker容器无法关闭的问题

    一般正常关闭&#xff1a; docker stop 容器ID解决方法 方法1&#xff1a;强制停止docker kill 容器ID方法2&#xff1a;直接重启dockersudo service docker stop方法3&#xff1a;直接删除容器&#xff0c;重新创建docker rm -f my_container...

    2023/9/29 10:49:45
  6. 6年前的麒麟980依旧可以再战

    麒麟980&#xff0c;使用6年后的今天&#xff0c;我对它进行跑分测试。 在bench旗下的VRMark跑分中&#xff0c;麒麟980荣获5023分&#xff0c;同款跑分APP&#xff0c;要知道同一时期的高通骁龙855只有4937分&#xff0c; 打游戏&#xff0c;以和平精英为例&#xff0c;帧率3…...

    2023/9/29 10:41:52

最新文章

  1. java一体化智慧工地信息管理平台源码 智慧工地APP源码

    智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、物联网和移动互联网等高科技技术手段&#xff0c;将施工区域各系统数据汇总&#xff0c;建立可视化数字工地。同时&#xff0c;围绕人、机、料、法、环等各方面关键因素&#xff0…...

    2023/9/29 11:07:21
  2. 电子学会Python二级知识点(自己整理)

    序列 Python的变量不需要声明&#xff0c;每个变量在使用之前必须赋值&#xff0c;变量被赋值以后&#xff0c;该变量才会被创建。常见的6个数据类型&#xff1a;数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)。6中数据类型分为两大类…...

    2023/9/29 11:07:10
  3. 【VUE复习·9】v-for 基础用法(循环渲染也叫列表渲染)

    总览 1.v-for 都能循环什么 2.用法 一、v-for 都能遍历什么 能循环的东西包括&#xff1a;数组、对象、字符串&#xff08;和java里面的3个引用数据类型一样&#xff09;、纯粹循环数量&#xff08;少用&#xff09; 二、用法 1.用法1&#xff1a;简单循环&#xff08;遍历…...

    2023/9/29 11:06:32
  4. 如何用WiFi实现无线定位

    一、WiFi主从模块设置 1. 实验器材 2. 实验步骤 ① 给控制板刷一套空的程序。 ② 将Esp8266模块连接到Bigfish扩展板上&#xff0c;并将扩展板插到控制板上。 ③ 在arduino的Seiral Monitor中&#xff0c;输入AT指令集&#xff0c;观察模块的相应应答。 3. 常用指令 ① 基础A…...

    2023/9/29 11:00:20
  5. 解决docker容器无法关闭的问题

    一般正常关闭&#xff1a; docker stop 容器ID解决方法 方法1&#xff1a;强制停止docker kill 容器ID方法2&#xff1a;直接重启dockersudo service docker stop方法3&#xff1a;直接删除容器&#xff0c;重新创建docker rm -f my_container...

    2023/9/29 10:49:45
  6. 6年前的麒麟980依旧可以再战

    麒麟980&#xff0c;使用6年后的今天&#xff0c;我对它进行跑分测试。 在bench旗下的VRMark跑分中&#xff0c;麒麟980荣获5023分&#xff0c;同款跑分APP&#xff0c;要知道同一时期的高通骁龙855只有4937分&#xff0c; 打游戏&#xff0c;以和平精英为例&#xff0c;帧率3…...

    2023/9/29 10:41:52
  7. 国内可使用chatGPT的十三种方式

    国内AI 1. 开放猫 Chat机器人https://mirrorchat.extkj.cn/ chat机器人&#xff1a; Chat机器人https://mirrorchat.extkj.cn/ 3.免费学习测试 免费学习测试https://chat.wuguokai.cn/#/chat/1683348236237 4.AI文本工具站 AI文本工具站一个用于提高工作效率的文本工具网站,应用…...

    2023/8/14 13:04:36
  8. 基于ChatGPT3.5 API实现的私有化web程序源码+使用说明,一键部署属于自己定制化的 chatgpt web 程序

    chatgpt-web 本项目可以一键部署属于自己定制化的 chatgpt web 程序(兼容gpt3.5)&#xff0c; 只需下载release中对应平台的项目文件&#xff0c;修改配置后执行&#xff0c;打开 http://127.0.0.1:8080 &#xff0c;便可以获得属于自己的chatgpt网站。 参考项目&#xff1a;co…...

    2023/8/14 19:59:25
  9. ChatGPT Plus用户专享:86款高效功能插件,详尽安装与使用全攻略

    在前天的文章中&#xff0c;我们介绍了 ChatGPT 开放的全新模式 Web Browsing&#xff08;网页浏览&#xff09;&#xff0c;启用后 ChatGPT 就可以开始上网&#xff0c;收集最新的互联网资料进行作答。 其他关于chatgpt使用方面&#xff1a;请访问&#xff1a; 链接&#xf…...

    2023/8/14 10:16:53
  10. ChatGPT自然语言处理的新里程碑

    ChatGPT中文网是一个面向中国用户的聊天机器人网站&#xff0c;旨在为国内用户提供一个自然的环境、有趣、实用的聊天体验。它使用最新的自然语言处理技术来帮助用户更好地理解他们的聊天对话&#xff0c;还可以帮助用户解决日常生活中的问题&#xff0c;提供有趣的谈话内容以及…...

    2023/8/15 8:22:45
  11. 国内版ChatGPT最全使用方法及使用用途技巧汇总

    ChatGPT人工智能技术的出现确实会让一些人担心自己的工作会不会被取代。但实际上&#xff0c;人工智能技术只会替代那些可以被程序自动化的重复性、标准化、无脑力的工作&#xff0c;而对于需要人类创意、想象力和复杂思维的工作来说&#xff0c;AI人工智能技术的发展对于人类来…...

    2023/8/14 10:55:47
  12. ChatGPT和Midjourney王炸组合,开启AI新时代

    目录 序言 一&#xff1a;使用ChatGPT进行对话 二&#xff1a;调用newbies robot 三&#xff1a;举例说明 四&#xff1a;付费和使用限制 序言 随着人工智能技术的不断发展&#xff0c;越来越多的人开始使用人工智能工具来创作图画。在这里&#xff0c;我将分享如何结合Ch…...

    2023/8/15 10:03:43