2024蓝桥杯每日一题(前缀和)

一、第一题:壁画

 解题思路:前缀和+贪心枚举
        仔细思考可以发现B值最大的情况是一段连续的长度为n/2上取整的序列的累加和

【Python程序代码】

import math
T = int(input())
for _ in range(1,1+T):n = int(input())s = input()l = math.ceil(len(s)/2)a = [0]for i in s:a.append(int(i))for i in range(1,n+1):a[i]+=a[i-1]res = 0for i in range(l,n+1):res = max(res,a[i]-a[i-l])print("Case #%d: %d"%(_,res))

二、第二题:前缀和

 

解题思路:前缀和
        前缀和模板题

【Python程序代码】

n,m = map(int,input().split())
a = [0] + list(map(int,input().split()))
for i in range(1,n+1):a[i]+=a[i-1]
for i in range(m):l,r = map(int,input().split())print(a[r]-a[l-1])

 三、第三题:子矩阵的和

 

 解题思路:二维前缀和
        二维前缀和模板题

【Python程序代码】

n, m, q = map(int, input().split())
a = [[0] * (m + 1)]
for i in range(n):tep = [0] + list(map(int, input().split()))a.append(tep)
s = [[0] * (m + 5) for _ in range(n + 5)]
for i in range(1, n + 1):for j in range(1, m + 1):a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1]
for _ in range(q):x1, y1, x2, y2 = map(int, input().split())res = a[x2][y2] - a[x1 - 1][y2] - a[x2][y1 - 1] + a[x1 - 1][y1 - 1]print(res)

四、第四题: K倍区间

解题思路:前缀和
        先计算数组的前缀和并对k取模后思考如何组成k倍区间

【Python程序代码】

from collections import defaultdict
dic = defaultdict(int)
n,k = map(int,input().split())
a = [0]
for i in range(n):tep = int(input())a.append(tep)
for i in range(1,n+1):a[i] = (a[i]+a[i-1])%k
res = 0
#print(a)
for i in range(0,n+1):res += dic[a[i]]dic[a[i]] += 1
print(res)

五、第五题:统计子矩阵

解题思路:前缀和+双指针优化
        首先对列做前缀和方便后面的优化,从第一行(i)开始遍历,y方向则是(i~n),左指针l每次从1开始,右指针遍历1~m,每次判断(l,r,y)组成的子矩阵,如果当前的值大于k则左指针往右走直到小于k,否则res+=r-l+1.

【Python程序代码】

n,m,k = map(int,input().split())
s = [[0]*(m+1)]
for i in range(n):s.append([0] + list(map(int,input().split())))
for i in range(1,n+1):for j in range(1,m+1):s[i][j] += s[i-1][j]
res = 0
for i in range(1,n+1):for j in range(i,n+1):l = 1sumv = 0for r in range(1,m+1):sumv += s[j][r]-s[i-1][r]while sumv>k:sumv -= s[j][l]-s[i-1][l]l += 1res += r-l+1
print(res)

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

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

相关文章

DeepLearning in Pytorch|我的第一个NN-共享单车预测

目录 概要 一、数据准备 导入数据 数据可视化 二、设计神经网络 版本一 版本二(正片) 三、测试 小结 概要 我的第一个深度学习神经网络模型---利用Pytorch设计人工神经网络对某地区租赁单车的使用情况进行预测 输入节点为1个,隐含…

AI数据分析软件-BeepBI的诞生结束了传统BI时代,引领了数据分析零门槛的时代

#AI数据分析# 随着人工智能(AI)的日益成熟,数据分析领域正迎来一场革命性的变革。在这场变革中,DeepBI凭借实现了用ai数据分析,与传统BI工具相比,展现出了前所未有的便捷性和易上手特性,真正实现了数据分析的零门槛。…

机器学习笔记 计算机视觉中的测距任务常见技术路线

一、计算机视觉中的测距任务 测距是计算机视觉中的一项关键任务,涉及测量物体和相机之间的距离。这些信息可用于多种应用,包括机器人、自动驾驶汽车和增强现实。测距技术有很多种,包括主动式和被动式,每种技术都有自己的优点和局限性。主动测距技术,例如飞行时间、结构光和…

动态规划DP之背包问题3---多重背包问题

目录 DP分析: 优化: 二进制优化 例题: 01背包是每个物品只有一个,完全背包问题是每个物品有无限个。 那么多重背包问题就是 每个物品有有限个。 有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件,每件体…

IDS入侵检测知识整理及lDS入侵检查表

【IDS入侵检测知识整理及lDS入侵检查表】 1. 网络入侵检测IDS概念 2. IDS分类 3. IDS的工作原理 4. IDS在网络中的部署 5. 入侵检查表 项目建设全套资料获取通道:软件开发全套资料_数字中台建设指南-CSDN博客

Java | vscode如何使用命令行运行Java程序

1.在vscode中新建一个终端 2.在终端中输入命令 输入格式&#xff1a; javac <源文件>此命令执行后&#xff0c;在文件夹中会生成一个与原java程序同名的.class文件。然后输入如下命令&#xff1a; java <源文件名称>这样java程序就运行成功了。&#x1f607;

C++指针(四)万字图文详解!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09; 本篇博客是介绍函数指针、函数指针数组、回调函数、指针函数的。 点赞破六…

力扣hot100题解(python版55-59题)

55、全排列 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&#xff1a; 输入&…

植物病害识别:YOLO甘蔗叶片病害识别分类数据集

YOLO甘蔗叶片病害识别数据集, 包含尾孢菌叶斑病&#xff0c;眼斑病&#xff0c;健康&#xff0c;红腐病&#xff0c;锈病&#xff0c;黄叶病6个常见病类别&#xff0c;3300多张图像&#xff0c;yolo标注完整&#xff0c;全部原始图像&#xff0c;未应用增强。 适用于CV项目&…

VSCode国内镜像下载方法

VSCode国内镜像下载方法&#xff1a; 找到下载界面&#xff0c;点击下载后&#xff0c;发现下载速度非常慢。 复制下载链接&#xff0c;然后替换图中画线部分&#xff1a; 改为&#xff1a;vscode.cdn.azure.cn 然后将链接粘贴到浏览器回车&#xff0c;会发现嗖的一下就好了

LLM 构建Data Muti-Agents 赋能数据分析平台的实践之①:数据采集

一、 概述 在推进产业数字化的过程中&#xff0c;数据作为最重要的资源是优化产业管控过程和提升产业数字化水平的基础一环&#xff0c;如何实现数据采集工作的便利化、高效化、智能化是降低数据分析体系运转成本以及推动数据价值挖掘体系的基础手段。随着数字化在产业端的推进…

力扣hot100:240.搜索二维矩阵II(脑子)

吉大21级算法分析与设计的一道大题&#xff0c;由于每一行都是排好序的直接逐行二分 可以达到&#xff1a;O(mlogn)。但是这里追求更广的思路可以使用其他方法。 矩阵四分&#xff1a; 在矩阵中用中心点比较&#xff0c;如果target大于中心点的值&#xff0c;则由于升序排列&am…