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

廊坊网站建设外包品牌推广策划营销策划

廊坊网站建设外包,品牌推广策划营销策划,discuz论坛,邓卅做网站在什么地方前缀和前缀和子矩阵的和结语前缀和 输入一个长度为 n的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r 对于每个询问,输出原序列中从第 l 个数到第 r个数的和。 输入格式第一行包含两个整数 n和 m 第二行包含 n个整数,表示整数…

前缀和

  • 前缀和
  • 子矩阵的和
  • 结语

前缀和

输入一个长度为 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

前缀和的用处:前缀和数组能以On(1)的方式求出给定范围内数组的和。

在很多地方都用的上前缀和数组,只是它很容易被人忽略,所以得多练练加深印象。

解题思路:本题是一维数组的前缀和,思路很简单,直接在原数组上进行修改即可。

求前缀和数组:设原数组为a[],我们可知递推方程为a[i]=a[i-1]+a[i]

前缀和数组求出后,要知道给定范围内[i,j]的数组和,就很简单了
方程为 vla=a[j]-a[i-1]

代码:

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

子矩阵的和

输入一个 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

本题大致意思同上题差不多,只是从一维数组变为二维数组,有些不太好理解;

要求给定范围内的数组和 ,先说求二维前缀和的递推公式

a[i][j]=a[i][j-1]+a[i-1][j]-a[i-1][j-1]+a[i][j];

在这里插入图片描述

看图:
黑颜色即为所求,但是当我们在减去多余部分的时候,有一块区域会被减去两次,如上图,就是橙色的区域,因此我们需要将其加回来。
代码:

#include<iostream>using namespace std;const int N=1010;
int a[N][N];int main()
{int n,m,q;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++){a[i][j]=a[i][j-1]+a[i-1][j]-a[i-1][j-1]+a[i][j];}}while(q--){int x1,y1,x2,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);int val=a[x2][y2]-a[x2][y1-1]-a[x1-1][y2]+a[x1-1][y1-1];cout<<val<<endl;}return 0;
}

结语

下篇会描述前缀和的兄弟,差分数组。

如果觉得有帮助的话,记得
一键三连哦ヾ(≧▽≦*)o。

http://www.hkea.cn/news/496587/

相关文章:

  • 公司网站开发语言如何优化百度seo排名
  • 做网站较好的框架惠州百度推广排名
  • 网站建设和运营的课程推广软文发稿
  • 杭州企业网站建设方案ui培训
  • 个人站长做哪些网站好seo优化设计
  • 小白学做搭建网站软文街官方网站
  • 网站模板 可做采集站市场营销咨询
  • 家居网站建设素材天眼查询个人信息
  • 杭州专业网站排名优化交换链接的例子
  • 网站建设和数据容量整合seo的培训课程
  • 深圳 网站制作 哪家百度搜索排名优化哪家好
  • 网站运营者网址发稿平台
  • 内蒙古网站制作公司拼多多网店代运营要多少费用
  • 免费网站建设协议baike seotl
  • 做网站的好处和坏处怎么创建自己的网址
  • 兰州新区城乡建设局网站seo sem是什么职位
  • 衡水网站制作公司自媒体软文发布平台
  • 东莞圆心科技网站开发网页搜索
  • 日照网站建设价格百度推广怎么优化关键词的质量
  • 竭诚网络网站建设开发百度搜索竞价推广
  • 浙江住房和城乡建设厅报名网站下拉关键词排名
  • 银川哪里做网站百度网址名称是什么
  • 合肥公司网站建设价格低西安网络科技公司排名
  • 怎么样建设个人网站企业文化建设
  • 如何知道网站有没有备案成都seo公司
  • wordpress 艺术主题南京网络优化公司有哪些
  • 贵阳网站备案百度网站优化方案
  • 单位网站建设论文怎么做竞价托管
  • 建筑公司网站有哪些谈谈自己对市场营销的理解
  • 做ppt音乐怎么下载网站企业培训课程有哪些