蓝桥杯刷题DAY2:二维前缀和 一维前缀和 差分数组
闪耀的灯光
📌 题目描述
蓝桥公园是一个适合夜间散步的好地方,公园可以被视为由 n × m
个矩形区域构成。每个区域都有一盏灯,初始亮度为 a[i][j]
。
小蓝可以选择一个大的矩形区域,并按下开关一次,这将使得该区域内每盏灯的亮度减少 1
,但每个区域内的灯的亮度最多只能减少至 a[i][j] - c
。如果此时亮度已达到 a[i][j] - c
,再次按下开关将使得灯的亮度恢复为 a[i][j]
。
现在,小蓝将进行 t
次操作。每次操作他会选择一个矩形区域,该区域的左上角端点为 (x₁, y₁)
,右下角端点为 (x₂, y₂)
,然后将该区域内所有灯按下 k
次开关。
他想知道,在每次操作结束后,该区域内所有灯的总亮度是多少?在下一次操作前,公园内所有灯光会恢复到初始值。
数据保证每盏灯的亮度不会减少至负数。
📌 输入格式
- 第一行 输入三个正整数
n
、m
和c
,含义如上所述。 - 接下来
n
行,每行输入m
个正整数,代表灯的初始亮度a[i][j]
。 - 第
n+2
行 输入一个正整数t
,表示小蓝的操作次数。 - 接下来
t
行,每行输入5
个整数x₁, y₁, x₂, y₂, k
:(x₁, y₁)
:矩形区域的左上角坐标。(x₂, y₂)
:矩形区域的右下角坐标。k
:该区域内所有灯按下的开关次数。
📌 输出格式
输出 t
行,每行一个正整数,表示每次操作结束后该区域内所有灯的总亮度。
📌 样例输入
3 3 3 14 14 17 13 15 18 13 16 19 3 1 1 2 2 3 2 2 3 3 5 2 3 3 3 4
📌 样例输出
44 64 37
📌 样例解释
🔹 第一次操作 (1,1) → (2,2), k=3
初始状态
14 14 17 13 15 18 13 16 19
按 3 次开关后
11 11 17 10 12 18 13 16 19
答案:
11 + 11 + 10 + 12 = 44
🔹 第二次操作 (2,2) → (3,3), k=5
初始状态
14 14 17 13 15 18 13 16 19
按 5 次开关后
14 14 17 13 14 17 13 15 18
答案:
14 + 17 + 15 + 18 = 64
🔹 第三次操作 (2,3) → (3,3), k=4
初始状态
14 14 17 13 15 18 13 16 19
按 4 次开关后
14 14 17 13 15 18 13 16 19
答案:
18 + 19 = 37
📌 评测数据规模
约束条件 | 范围 |
---|---|
矩阵大小 | 1 ≤ n, m ≤ 300 |
最大减少值 | 1 ≤ c ≤ 10 |
操作次数 | 1 ≤ t ≤ 10⁵ |
灯的初始亮度 | 10 ≤ a[i][j] ≤ 10⁹ |
开关次数 | 1 ≤ k ≤ 10⁹ |
查询范围 | 1 ≤ x₁ ≤ x₂ ≤ n, 1 ≤ y₁ ≤ y₂ ≤ m |
📌 运行限制
语言 | 最大运行时间 | 最大运行内存 |
---|---|---|
C++ | 1s | 256M |
C | 1s | 256M |
Java | 2s | 256M |
Python3 | 3s | 256M |
子串简写
题目描述
程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。例如 internationalization
简写成 i18n
,Kubernetes
(注意连字符不是字符串的一部分)简写成 K8s
,Lanqiao
简写成 L5o
等。
在本题中,我们规定长度 大于等于 K 的字符串都可以采用这种简写方法(长度小于 K 的字符串不配使用这种简写)。
给定一个字符串 S
和两个字符 c1
和 c2
,请你计算 S
中 有多少个以 c1
开头,c2
结尾的子串 可以采用这种简写?
输入格式
- 第一行包含一个整数
K
。 - 第二行包含一个字符串
S
和两个字符c1
和c2
。
输出格式
- 一个整数代表答案。
样例输入
4
abababdb a b
样例输出
6
样例说明
符合条件的子串如下所示,中括号内是该子串:
评测用例规模与约定
- 对于 20% 的数据,保证:2 ≤ K ≤ |S| ≤ 10,000
- 对于 100% 的数据,保证:2 ≤ K ≤ |S| ≤ 500,000
S
仅包含小写字母。c1
和c2
均为小写字母。|S|
代表字符串S
的长度。
运行限制
语言 | 最大运行时间 | 最大运行内存 |
---|---|---|
C++ | 1s | 256M |
C | 1s | 256M |
Java | 2s | 256M |
Python3 | 3s | 256M |
题解:
import os
import sys# 请在此输入您的代码if __name__=="__main__":K=int(input())S,c1,c2=input().split()n=len(S)myarray=[0]*nif S[0]==c2:myarray[0]=1for i in range(1,n):if S[i]==c2:myarray[i]=myarray[i-1]+1else:myarray[i]=myarray[i-1]total=0for i in range(n):if S[i]==c1:l=i+K-1if l<n:total+=myarray[n-1]-myarray[i+K-2]print(total)
重新排序
问题描述
给定一个数组 A 和一些查询 [Li,Ri],求数组中第 Li 至第 Ri 个元素之和。
小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少?
输入格式
- 第一行:包含一个整数 n(表示数组 A 的大小)。
- 第二行:包含 n 个整数 A1,A2,…,An(相邻两个整数之间用空格分隔)。
- 第三行:包含一个整数 m(表示查询的数目)。
- 接下来的 m 行:
- 每行包含两个整数 Li,Ri。
输出格式
输出一行,包含一个整数,表示所有查询结果的总和相比原数组最多可以增加的值。
样例输入
5 1 2 3 4 5 2 1 3 2 5
样例输出
4
样例说明
原数组查询总和:
- 查询 [1,3]:1+2+3=6
- 查询 [2,5]:2+3+4+5=14
- 原总和:6+14=20
重新排列后数组为 (1,4,5,2,3),查询和变为:
- 查询 [1,3]:1+4+5=10
- 查询 [2,5]:4+5+2+3=14
- 新总和:10+14=24
最大增加值:24−20=4。
评测用例规模与约定
评测用例 | 限制范围 |
---|---|
30% 的评测用例 | n,m≤50 |
50% 的评测用例 | n,m≤500 |
70% 的评测用例 | n,m≤5000 |
100% 的评测用例 | 1≤n,m≤10^5,1≤Ai≤10^6,1≤Li≤Ri≤10^6 |
运行限制
编程语言 | 最大运行时间 | 最大运行内存 |
---|---|---|
C++ | 1s | 512M |
C | 1s | 512M |
Python3 | 1s | 512M |
Java | 1s | 512M |
相关文章:

蓝桥杯刷题DAY2:二维前缀和 一维前缀和 差分数组
闪耀的灯光 📌 题目描述 蓝桥公园是一个适合夜间散步的好地方,公园可以被视为由 n m 个矩形区域构成。每个区域都有一盏灯,初始亮度为 a[i][j]。 小蓝可以选择一个大的矩形区域,并按下开关一次,这将使得该区域内每盏…...

雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能
雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能 1. 修改VirtualBox配置文件映射串口 模拟器配置文件vms/leidian0/leidian.vbox。 在UART标签下增加(修改完成后需要将leidian.vbox修改为只读) <Port slot"1" enabled"true"…...

四、jQuery笔记
(一)jQuery概述 jQuery本身是js的一个轻量级的库,封装了一个对象jQuery,jquery的所有语法都在jQuery对象中 浏览器不认识jquery,只渲染html、css和js代码,需要先导入jQuery文件,官网下载即可 jQuery中文说明文档:https://hemin.cn/jq/ (二)jQuery要点 1、jQuery对象 …...

流浪 Linux: 外置 USB SSD 安装 ArchLinux
注: ArchLinux 系统为滚动更新, 变化很快, 所以本文中的安装方法可能很快就过时了, 仅供参考. 实际安装时建议去阅读官方文档. 最近, 突然 (也没有那么突然) 有了一大堆 PC: 4 个笔记本, 2 个台式主机 (M-ATX 主板), 1 个小主机 (迷你主机). 嗯, 多到用不过来. 但是, 窝又不能…...

1.For New TFLite Beginner
一、 Getting Started for ML Beginners This document explains how to use machine learning to classify (categorize) Iris flowers by species. This document dives deeply into the TensorFlow code to do exactly that, explaining ML fundamentals along the way. If…...

吊打同类软件免费又可批量使用
聊一聊 对于经常用到席卡的人来说,每次打印都觉得麻烦,要是有个软件,直接输入名称就能打印就好了。 这不,只要你想,就肯定能实现;如果没实现,就说明你不够想。 这个软件我测试了下࿰…...

MiniMind——跑通项目
文章目录 📌 Quick Start Train MiniMind (ModelScope) # step 1 git clone https://huggingface.co/jingyaogong/minimind-v1# step 2 python 2-eval.py或者启动streamlit,启动网页聊天界面 「注意」需要python>3.10,安装 pip install s…...

单细胞-第五节 多样本数据分析,打分R包AUCell
文件在单细胞\5_GC_py\1_single_cell\3.AUCell.Rmd 1.基因 rm(list = ls()) load("g.Rdata")2.AUCell https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9897923 IF: NA NA NA用这个文章里的方法,将单细胞亚群的marker基因与ros相关基因取交集,用作AUCell的基因集…...

【零拷贝】
目录 一:了解IO基础概念 二:数据流动的层次结构 三:零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一:了解IO基础概念 理解CPU拷贝和DMA拷贝 我们知道,操作系统对于内存空间&…...

深入解析 C++ 字符串处理:提取和分割的多种方法
在 C 编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时。本文将详细探讨如何使用 C 标准库中的工具(如 std::istringstream 和 std::string 的成员函数)来提取和分割字符串,并分析不同方法的适…...

计算机组成原理——存储系统(一)
在人生的道路上,成功与失败交织成一幅丰富多彩的画卷。不论我们是面对胜利的喜悦,还是遭遇失败的痛苦,都不能放弃对梦想的追求。正是在这种追求中,我们不断地超越自我,不断地突破自己的极限。只有勇往直前,…...

Jenkins未在第一次登录后设置用户名,第二次登录不进去怎么办?
Jenkins在第一次进行登录的时候,只需要输入Jenkins\secrets\initialAdminPassword中的密码,登录成功后,本次我们没有修改密码,就会导致后面第二次登录,Jenkins需要进行用户名和密码的验证,但是我们根本就没…...

论文和代码解读:RF-Inversion 图像/视频编辑技术
Diffusion Models专栏文章汇总:入门与实战 前言:Rectified Flow的反演和DDIM这些不太一样,上一篇博客中介绍了腾讯提出的一种方法《基于Rectified Flow FLUX的图像编辑方法 RF-Solver》,主要就是用泰勒展开和一阶导数近似来分解反演公式。这篇博客介绍谷歌提出的方法RF-Inv…...

大模型培训讲师老师叶梓分享:DeepSeek多模态大模型janus初探
以下视频内容为叶梓分享DeepSeek多模态大模型janus的部署,并验证其实际效果,包括图生文和文生图两部分。 叶梓老师人工智能培训分享DeepSeek多模态大模型janus初探 DeepSeek 的多模态大模型 Janus 是一款强大的 AI 模型,专注于图像和文本的多…...

2025最新源支付V7全套开源版+Mac云端+五合一云端
2025最新源支付V7全套开源版Mac云端五合一云端 官方1999元, 最新非网上那种功能不全带BUG开源版,可以自己增加授权或二开 拥有卓越的性能和丰富的功能。它采用全新轻量化的界面UI,让您能更方便快捷地解决知识付费和运营赞助的难题 它基于…...

稀疏混合专家架构语言模型(MoE)
注:本文为 “稀疏混合专家架构语言模型(MoE)” 相关文章合辑。 手把手教你,从零开始实现一个稀疏混合专家架构语言模型(MoE) 机器之心 2024年02月11日 12:21 河南 选自huggingface 机器之心编译 机器之心…...

比较热门的嵌入式项目
嵌入式系统在现代科技中应用广泛,以下是一些当前比较热门的嵌入式项目方向及其应用场景: 1. 物联网(IoT) 智能家居:智能灯光、温控器、安防系统。环境监测:空气质量、温湿度、土壤湿度传感器。工业物联网&…...

牛客网 除2!(详解)c++
题目链接:除2! 1.题目解析 1:想让数组所有数之和尽可能小,肯定有个想法,就是我每次选数组中偶数的时候,我必定挑一个最大的,因为我挑一个最大的出来,把它变成一半,这个时…...

被裁与人生的意义--春节随想
还有两个月就要被迫离开工作了十多年的公司了,不过有幸安安稳稳的过了一个春节,很知足! 我是最后一批要离开的,一百多号同事都没“活到”蛇年。看着一批批仁人志士被“秋后斩首”,马上轮到我们十来个,个中滋味很难言清…...

ASP.NET Core 中间件
目录 一、常见的内置中间件 二、自定义中间件 三、中间件的执行顺序 四、其他自动逸中间件案例 1. 身份验证中间件 2、跨域中间件(CORS) ASP.NET Core 中,中间件(Middleware)是处理 HTTP 请求和响应的组件链。你…...

Pyecharts之图表样式深度定制
在数据可视化的世界里,图表的样式定制对于提升数据展示效果和用户体验至关重要。Pyecharts 提供了丰富的样式定制功能,能让我们创建出独具特色的可视化作品。本篇将深入探讨如何使用 Pyecharts 为图表添加线性渐变色、径向渐变色,以及如何添加…...

git笔记-简单入门
git笔记 git是一个分布式版本控制系统,它的优点有哪些呢?分为以下几个部分 与集中式的版本控制系统比起来,不用担心单点故障问题,只需要互相同步一下进度即可。支持离线编辑,每一个人都有一个完整的版本库。跨平台支持…...

Joplin 插件在Vscode中无法显示图片
1.问题 在vscode里面装好joplin插件之后,无法显示图片内容。 粘贴的图片可以再vscode中显示,无法再joplin客户端显示 2.解决方法 这种情况是因为和vscode自带的MD编辑器的预览模式有冲突,或者没用通过专用方式上传图片。 方法一ÿ…...

python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位取反运算:一个二进制数,0变1,1变0。 【1】…...

pandas分组
分组 分组的关键要素是: 分组依据、数据来源、操作及其返回结果。 df.groupby(分组依据)[数据来源].使用操作对学生按照性别统计身高中位数。 print(df.groupby(Gender)[Height].median())上面是一维度进行分组,如果要根据多个维度分组,则…...

爬虫基础(三)Session和Cookie讲解
目录 一、前备知识点 (1)静态网页 (2)动态网页 (3)无状态HTTP 二、Session和Cookie 三、Session 四、Cookie (1)维持过程 (2)结构 正式开始说 Sessi…...

【Super Tilemap Editor使用详解】(十三):快捷键指南(Keyboard Shortcuts)
在使用 Super Tilemap Editor 进行图块地图编辑时,键盘快捷键可以显著提高工作效率。本文将详细介绍常用的快捷键及其功能,帮助你更快地完成图块绘制、翻转、旋转以及工具切换等操作。 一、快捷键文件位置 所有键盘快捷键的定义可以在以下路径找到&…...

【Leetcode 每日一题】119. 杨辉三角 II
问题背景 给定一个非负索引 r o w I n d e x rowIndex rowIndex,返回「杨辉三角」的第 r o w I n d e x rowIndex rowIndex 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 数据约束 0 ≤ r o w I n d e x ≤ 33 0 \le rowIndex \le 33 …...

简单看看会议系统2(时延分析)(TODO)
(TODO) eBPF (extended Berkeley Packet Filter) 可以用来跟踪和分析树莓派 5 或其他 Linux 系统中的各种活动,包括拍摄和数据传输过程的性能分析。eBPF 是一个强大的内核级工具,可以在不修改内核源码的情况下,动态地跟…...

Linux中 端口被占用如何解决
lsof命令查找 查找被占用端口 lsof -i :端口号 #示例 lsof -i :8080 lsof -i :3306 netstat命令查找 查找被占用端口 netstat -tuln | grep 端口号 #示例 netstat -tuln | grep 3306 netstat -tuln | grep 6379 ss命令查找 查找被占用端口 ss -tunlp | grep 端口号 #示例…...