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

备战蓝桥杯【二维前缀和】

🌹作者:云小逸
📝个人主页:云小逸的主页
📝Github:云小逸的Github
🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。==希望春天来之前,我们一起面朝大海,春暖花开!==🤟
👏专栏:C++👏 👏专栏:Java语言👏
👏专栏:C语言初阶👏👏专栏:数据结构👏

文章目录

  • 前言
  • 二维前缀和:
    • 算法介绍:
    • 基本思想:
    • 题目1:【子矩阵的和】
      • 题目:
      • 输入格式
      • 输出格式
      • 数据范围
      • 输入样例:
      • 输出样例:
      • 做题思路:
      • 代码:
    • 题目2:K倍区间
      • 题目:
      • 输入格式
      • 输出格式
      • 数据范围
      • 输入样例:
      • 输出样例:
      • 做题思路:
      • 代码:
  • 最后


前言

今天这篇文章接着上一篇【一维前缀和】继续写【二维前缀和】,如果有错误,请私信我,谢谢,望见谅。
——————————————————————————————

首先先写上几句话:献给坚持创作的我和点开这篇文章希望进步的你
1.当身边的一道道风景,变成了回忆 ,才忽然发现,风景依然在,人已是非少年,起初,我们揣着糊涂装明白,后来,我们揣着明白装糊涂。

2.人生百味,情最浓,人生繁华,淡最真,人生一路,一步有一步的风景,一程有一程的感悟,不论时光如何流转,有些东西不会改变,那就是对美好的追求,对真情的渴望,给他人一份善良,给自己一份淡然。

3.如果难过,就抬头望望天空吧,望着望着就忘了,它那么大,一定可以包容你的所有委屈。

4.人生几十年,酸甜苦辣咸,各种滋味都有,打开内心的窗,去呼吸一下外面的新鲜空气。别让自己活得太累。应当学着想开、看淡、学着不强求,学着深藏。适时放松自己,找寻宣泄,给疲倦的内心解解压。

5.关关难过关关过,夜夜难熬夜夜熬,悲喜自渡,他人难悟。悄悄崩溃,默默自愈。

二维前缀和:

算法介绍:

二维前缀和算法是一种用于计算矩阵中任意矩形区域和的算法。

基本思想:

先将矩阵中的每个元素都加上它左上角的元素,然后再将每个元素加上它上面的元素,最后得到一个新的矩阵,这个矩阵中的每个元素都是原矩阵中以它为右下角的矩形区域的和。这样,只要知道矩形区域的左上角和右下角的坐标,就可以很容易地求出矩形区域的和。

题目1:【子矩阵的和】

题目:

输入一个 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=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]);s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];}}while(q--){int x1,x2,y1,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;
}

题目2:K倍区间

题目:

给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?

输入格式

第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。

输出格式

输出一个整数,代表 K 倍区间的数目。

数据范围

1≤N,K≤100000,
1≤Ai≤100000

输入样例:

5 2
1
2
3
4
5

输出样例:

6

做题思路:

首先将数组中的每个元素都加上它前面的元素,得到一个新的数组,然后用一个数组cnt记录每个余数出现的次数,最后遍历数组,累加每个余数出现的次数,即可得到答案。

代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;const int N=100010;
int n,k;
long long s[N],cnt[N];int main()
{scanf("%d%d",&n,&k);for(int i=1;i<=n;i++){scanf("%lld",&s[i]);s[i]+=s[i-1];}long long res=0;cnt[0]=1;for(int i=1;i<=n;i++){res+=cnt[s[i]%k];cnt[s[i]%k]++;}printf("%lld\n",res);return 0;
}

在这里插入图片描述

最后

十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

1.太多的事,慢慢地就不能做了;太多的人,渐渐地就不见了。成长似乎是一个丢失的过程。青春,就是注定了要颠簸,要有眼泪和汗水,有委屈、不甘和失败。后来,慢慢知道一切该发生的就是会发生,一切会错过的就是会错过。

2.趁自己还不老,走自己想走的路。没有理由,不去闯!时间,抓起了就是黄金,虚度了就是流水;理想,努力了才叫理想,放弃了那只是妄想!努力,虽然不一定会获得,但不努力,就一定一无所获。

3.趁自己还不老,走自己想走的路。没有理由,不去闯!时间,抓起了就是黄金,虚度了就是流水;理想,努力了才叫理想,放弃了那只是妄想!努力,虽然不一定会获得,但不努力,就一定一无所获。

4.我一直以为人是慢慢变老的,其实不是,人是一瞬间变老的。

5.随着年龄的增长,我们愈加发现,或许我们并不是失去了一些人,而是更加懂得到底谁才是最重要的人。

最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)

愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚菜鸟逐渐成为大佬。加油,为自己点赞!

http://www.lryc.cn/news/9966.html

相关文章:

  • 阿里P6细谈Python简易接口自动化测试框架设计与实现,我直呼内行
  • 数据库存储
  • hive学习笔记
  • 7大体系防作弊,牛客放大招了!严肃笔试客户端上线!
  • R语言广义可加模型在空气环境污染方面的应用(1)
  • CSDN 编程竞赛二十九期题解
  • 基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试
  • K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示
  • map和set介绍及其底层模拟实现
  • 实现一个比ant功能更丰富的Modal组件
  • 2023美赛F题思路数据代码分享
  • Flutter如何与Native(Android)进行交互
  • 数据库主从复制和读写分离
  • Java并发编程面试题——线程安全(原子性、可见性、有序性)
  • DialogFragment内存泄露问题能不能一次性改好
  • java学习--多线程
  • 90后阿里P7技术专家晒出工资单:狠补了这个,真香...
  • 2023美赛C题:Wordle筛选算法
  • SpringBoot 集成 Kafka
  • OpenCV 图像金字塔算子
  • 【自学Linux】Linux一切皆文件
  • CUDA C++扩展的详细描述
  • 为什么重写equals必须重写hashCode
  • < 每日小技巧:N个很棒的 Vue 开发技巧, 持续记录ing >
  • 数据结构与算法之二分查找分而治之思想
  • 训练自己的中文word2vec(词向量)--skip-gram方法
  • ubuntu系统环境配置和常用软件安装
  • 【1139. 最大的以 1 为边界的正方形】
  • windows11安装sqlserver2022报错
  • Python快速上手系列--日志模块--详解篇