蓝桥杯 之 前缀和与查分
文章目录
- 题目
- 求和
- 棋盘
- 挖矿
- 前缀和有利于快速求解 区间的和、异或值 、乘积等情况
- 差分是前缀和的反操作
前缀和
- 一维前缀和:
# 原始的数组num,下标从1到n
n = len(num)
pre = [0]*(n+1)
for i in range(n):pre[i+1] = pre[i] + num[i]
# 如果需要求解num[l] 到num[r] 的区间和
ans = pre[r] - pre[l-1]
- 二维前缀和
# 原本的数组是n*m形状的pre = [[0]*(m+1) for _ in range(n+1)]for i in range(n):for j in range(m):pre[i+1][j+1] = pre[i][j+1] + pre[i+1][j] - pre[i][j] + num[i][j]
前缀和的应用:
-
当你想在一个区间进行统一的加上一个数或者减去一个数的时候,一个个操作会很慢,并且涉及多次操作的时候更新很麻烦,但是我们可以结合这个差分和前缀和进行快速求解
-
一维:
# 在区间l到r之间同时都加上a,那么我们只需在num[l] + a,在num[r+1] -a
# 然后求解前缀和即可,就可以得到每个位置的最后的值
- 二维:
# 1<=x1<=x2<=y1<=y2<=n
# 在x1,y1 到 x2,y2 之间都加上一个数
num[x1][y1] += a
num[x2+1]y2+1] +=a
num[x1][y2+1] -=a
num[x2+1][y1] -=a
差分:
- 一维差分:
# 1<=l<=r<=n ,那么区间l到r之间的和值为
ans = pre[r] - pre[l-1]
- 二维查分:
#
ans = pre[x2][y2] - pre[x2][y1] - pre[x1][y2] + pre[x1][y1]
题目
求和
求和
思路分析:
- 首先直接暴力是肯定不行的,所以得考虑转换?发现可以提取相同的元素,然后使用这个前缀和进行优化即可
import os
import sys# 请在此输入您的代码# 提取公因式,你会发现 ans = a1*(a2+···an) + a2*(a3+···an) + an-1*(an)n = int(input())
num = list(map(int,input().split()))pre = [0]*(n+1)
for i in range(n):pre[i+1] = pre[i] + num[i]ans = 0
for i in range(n-1):ans += num[i]*(pre[n]-pre[i+1])
print(ans)
棋盘
棋盘
思路分析:
- 这个题目得使用到这个二维的前缀和与查分进行优化
import os
import sys# 请在此输入您的代码# 其实和这个,异或操作是类似的
# 0表示白色,1表示黑色n,m = map(int,input().split())num = [[0]*(n+1) for _ in range(n+1)]for _ in range(m):x1,y1,x2,y2 = map(int,input().split())x1,y1,x2,y2 = x1-1,y1-1,x2-1,y2-1num[x1][y1] += 1num[x2+1][y2+1] +=1num[x1][y2+1] -=1num[x2+1][y1] -=1# 求解二维前缀和
dp = [[0]*(n+1) for _ in range(n+1)]for i in range(n):for j in range(n):dp[i+1][j+1] = (dp[i+1][j] + dp[i][j+1] - dp[i][j] + num[i][j])%2for i in range(1, n + 1):row = "".join(str(dp[i][j]) for j in range(1, n + 1))print(row)
挖矿
挖矿
思路分析:
- 首先明确一个问题,在坐标轴上移动,最多只能转向一次:证明,设你转向多次之后到达左端点是
l
,到达右端点的坐标是r
,如果你直接一开始不转向,直接到达左端点l
,然后再直接向后转向右边,那么到达的距离是肯定比r
大的
import os
import sys# 请在此输入您的代码
n,m = map(int,input().split())
num = list(map(int,input().split()))
# 开的空间
l ,r = [0]*(m + 1),[0]*(m + 1)iszero = 0for i in num:if i > 0 and i <= m:r[i] += 1if i < 0 and abs(i) <= m:l[abs(i)] += 1if i == 0:iszero = 1# 计算出其中的左和右可以到达的位置所能得到的矿
for i in range(1,m+1):r[i] += r[i-1]l[i] += l[i-1]
ans = 0# 枚举可以到达的端点,注意左边和右边
for j in range(1,m//2 + 1):ans = max(ans,r[j] + l[m-2*j],l[j] + r[m-2*j])print(ans+iszero)
相关文章:

蓝桥杯 之 前缀和与查分
文章目录 题目求和棋盘挖矿 前缀和有利于快速求解 区间的和、异或值 、乘积等情况差分是前缀和的反操作 前缀和 一维前缀和: # 原始的数组num,下标从1到n n len(num) pre [0]*(n1) for i in range(n):pre[i1] pre[i] num[i] # 如果需要求解num[l] 到num[r] 的区…...

GB28181开发--ZLMediaKit+WVP+Jessibuca
一、核心组件功能 1、ZLMediaKit 定位:基于 C++11 的高性能流媒体服务框架,支持 RTSP/RTMP/HLS/HTTP-FLV 等协议互转,具备低延迟(最低 100ms)、高并发(单机 10W 级连接)特性,适用于商用级流媒体服务器部署。 特性:跨平台(Linux/Windows/ARM 等)、支持 …...

Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit
步骤 1.下载4个安装包 Index of /nvidia-docker/libnvidia-container/stable/ nvidia-container-toolkit-base_1.13.5-1_amd64.deb libnvidia-container1_1.13.5-1_amd64.deb libnvidia-container-tools_1.13.5-1_amd64.deb nvidia-container-toolkit_1.13.5-1_amd64.deb 步…...

如何快速上手RabbitMQ 笔记250304
如何快速上手RabbitMQ 要快速上手 RabbitMQ,可以按照以下步骤进行,从安装到基本使用逐步掌握核心概念和操作: 1. 理解核心概念 Producer(生产者):发送消息的程序。Consumer(消费者)…...

无人机端部署 AI 模型,实现实时数据处理和决策
在无人机端部署 AI 模型,实现实时数据处理和决策,是提升无人机智能化水平的关键技术之一。通过将 AI 模型部署到无人机上,可以实现实时目标检测、路径规划、避障等功能。以下是实现这一目标的详细方案和代码示例。 一、实现方案 1. 硬件选择…...

CentOS 7中安装Dify
Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时,会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...

CoDrivingLLM
CoDrivingLLM 思路 1.输入和输出 输入 算法的输入包括车辆当前时刻的状态 S t S_t St ,这个状态包含了车辆的位置、速度、行驶方向等信息;以及参与协同驾驶的联网自动驾驶汽车列表C,用于确定需要进行决策的车辆集合。 输出 输出为车辆…...

Centos7升级openssl和openssh最新版
1、事前准备 下载openssl3.4.1和openssh9.9p2压缩包上传到服务器 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable// Release OpenSSL 3.4.1 openssl/openssl GitHub 2、查看centos7、ssh以及openssl的版本信息 # 查看CentOS系统版本信息 cat /etc/redhat-release …...

相控阵扫盲
下图展示天线增益 在仰角为0度的情况下随着方位角的变化而变化。需要注意到的是在天线视轴方向上的高增益主瓣上还有几个低增益旁瓣 阵列因子乘以新的阵元方向图会形成指向性更强的波速...

nginx 配置 301跳转
HTTP 跳转到 HTTPS 将所有 HTTP 请求(80 端口)跳转到 HTTPS(443 端口): server {listen 80;server_name example.com;# 跳转到 HTTPSreturn 301 https://$host$request_uri; }server {listen 443 ssl;server_name exa…...

开发环境搭建-03.后端环境搭建-使用Git进行版本控制
一.Git进行版本控制 我们对项目开发就会产生很多代码,我们需要有效的将这些代码管理起来,因此我们真正开发代码前需要把我们的Git环境搭建好。通过Git来管理我们项目的版本,进而实现版本控制。 首先我们使用Git创建本地仓库,然后…...

vivado 充分利用 IP 核
充分利用 IP 核 使用预先验证的 IP 核能够大幅减少设计和验证工作量,从而加速产品上市进程。如需了解更多有利用 IP 的信息,请参 阅以下资源: • 《 Vivado Design Suite 用户指南:采用 IP 进行设计》 (UG896) [ 参照 1…...

外盘农产品期货数据:历史高频分钟回测的分享下载20250305
外盘农产品期货数据:历史高频分钟回测的分享下载20250305 在国际期货市场中,历史分钟高频数据的作用不可小觑。这些数据以分钟为时间尺度,详细记录了期货合约的价格变动和交易量信息,为投资者提供了全面、深入的市场分析视角。通…...

计算机毕设-基于springboot的网上商城系统的设计与实现(附源码+lw+ppt+开题报告)
博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!
下载模型与数据 模型下载: huggingface: Qwen/Qwen2.5-7B-Instruct HF MirrorWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct 魔搭&a…...

【C++设计模式】第四篇:建造者模式(Builder)
注意:复现代码时,确保 VS2022 使用 C17/20 标准以支持现代特性。 分步骤构造复杂对象,实现灵活装配 1. 模式定义与用途 核心目标:将复杂对象的构建过程分离,使得同样的构建步骤可以创建不同的表示形式。 常见场景&am…...

【杂谈】信创电脑华为w515(统信系统)登录锁定及忘记密码处理
华为w515麒麟芯片版,还有非麒麟芯片版本,是一款信创电脑,一般安装的UOS系统。 准备一个空U盘,先下载镜像文件及启动盘制作工具,连接如下: 百度网盘 请输入提取码 http://livecd.uostools.com/img/apps/l…...

VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值
《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…...

版本控制器Git和gdb
一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…...

关于tresos Studio(EB)的MCAL配置之GPT
概念 GPT,全称General Purpose Timer,就是个通用定时器,取的名字奇怪了点。定时器是一定要的,要么提供给BSW去使用,要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…...

大学至今的反思与总结
现在是2025年的3月5日,我大三下学期。 自大学伊始,我便以考研作为自己的目标,有时还会做自己考研上岸头部985,211,offer如潮水般涌来的美梦。 但是我却忽略了一点,即便我早早下定了决心去考研,但并没有早…...

我们来学nginx -- 优化下游响应速度
优化下游响应速度 题记启用 Gzip 压缩优化缓冲区设置设置超时时间 题记 专家给出的配置文件真是…,信息量有点大啊! nginx:我只想作为一个简单的代理专家爸爸:都是为了你好! 这样,先从有关响应速度的角度&…...

国内外优秀AI外呼产品推荐
在数字化转型浪潮中,AI外呼系统凭借其高效率、低成本、精准交互的特点,成为企业客户触达与服务的核心工具。本文基于行业实践与技术测评,推荐国内外表现突出的AI外呼产品,重点解析国内标杆企业云蝠智能,并对比其他代表…...

观察者模式的C++实现示例
核心思想 观察者模式是一种行为型设计模式,定义了对象之间的一对多依赖关系。当一个对象(称为Subject,主题)的状态发生改变时,所有依赖于它的对象(称为Observer,观察者)都会自动收到…...

爬虫(持续更新ing)
爬虫(持续更新ing) # 网络请求 # url统一资源定位符(如:https://www.baidu.com) # 请求过程:客户端的web浏览器向服务器发起请求 # 请求又分为四部分:请求网址,请求方法(…...

AD学习-最小系统板,双层
第一章 简单电阻容模型的创建 捕捉栅格在摆放器件时,一般设置成 10mil。移动器件时一般设置成100mil。 比如绘制电容的原理图库,直接就是两根线条竖着成电容, 按Tab键进行颜色变更,按shift键拖动会复制一个出来。 …...

自动驾驶---不依赖地图的大模型轨迹预测
1 前言 早期传统自动驾驶方案通常依赖高精地图(HD Map)提供道路结构、车道线、交通规则等信息,可参考博客《自动驾驶---方案从有图迈进无图》,本质上还是存在问题: 数据依赖性高:地图构建成本昂贵…...

【五.LangChain技术与应用】【8.LangChain提示词模板基础:从入门到精通】
早上八点,你端着咖啡打开IDE,老板刚甩来需求:“做个能自动生成产品描述的AI工具”。你自信满满地打开ChatGPT的API文档,结果半小时后对着满屏的"输出结果不稳定"、"格式总出错"抓耳挠腮——这时候你真需要好好认识下LangChain里的提示词模板了。 一、…...

【AGI】智谱开源2025:一场AI技术民主化的革命正在到来
智谱开源2025:一场AI技术民主化的革命正在到来 引言:开源,一场技术平权的革命一、CogView4:中文AI生成的里程碑1. 破解汉字生成的“AI魔咒”2. 开源协议与生态赋能 二、AutoGLM:人机交互的范式跃迁1. 自然语言驱动的跨…...

Markdown HTML 图像语法
插入图片 Markdown 一般来说,直接复制粘贴过来就行了,部分网页/应用可以拖拽,没人会真敲图片的链接吧…… 示例图片: ![Creeper?](https://i-blog.csdnimg.cn/direct/f5031c8c4f15421c9882d7eb23540b8…...