洛谷 P2367 语文成绩 刷题笔记
P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

差分
令a[i]为b[i]数组的前缀和
a[n]=b[1]+b[2]+b[3]+.....+b[n];
a[n-1]=b[1]+b[2]+b[3]+.....+b[n-1];
构造差分数组 b[i]=a[i]-a[i-1];
有什么好处 当我们想对a[l]--a[r]范围内所有数据加上一个数x
不必循环 for(int i=l;i<=r;i++) a[i]+=x;
直接
b[l]+=c;//从l-n的范围全部+c;
b[r+1]-=c;//将r+1到n范围多加的C减掉
自此我们快速将一个循环才能完成的操作优化 (主要是为了以后学二维的差分做铺垫)
对于构造差分数组 我们采取 add ()函数
void add(int l,int r,int x){
b[l]+=x;
b[r+1]-=x;
}
for(int i=1;i<=n;i++){
cin>>a[i];
add(i,i,a[i]);//构造b[i] 差分数组
}
该函数 在首次输入a[i]数组构造差分数组的效果
等价于 b[i]=a[i]-a[i-1]
为什么呢
我们传入了两个i
传进add后
相当于
b[i]这个数加上了a[i]
而b[i+1]这个数减去了a[i]
///这一部操作是因为 b[i]=a[i]-a[i-1] 在我们输入下一个a[i]时
//当前的这个a[i]就是下一个a[i]的”a[i-1]"而我们要减去的a[i-1]其实在上一次输入时就已经先减去了
所以读入当前a[i] 只要将b[i](它的值是 -a[i-1] )加上这个a[i]即可
那我为什么不直接写 b[i]=a[i]-a[i-1] 其实完全没问题
只是二维差分数组的构造 也采取add 这里先讲了add的原理 以便进一步理解二维差分数组的构造
完整代码
#include<iostream>
using namespace std;
const int N=5e6+10;
int a[N],b[N];
void add(int l,int r,int x){
b[l]+=x;
b[r+1]-=x;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
add(i,i,a[i]);//构造b[i] 差分数组
//此处的insert 操作的实际效果
//与该语句 b[i]=a[i]-a[i-1]; 相同 ;
//初始化 插入差分数组
//使b[i]变成当前 a[i]的差分数组
//b数组为空 将a数组的原始值插入b数组 就是按照差分处理的形式
//初始化b数组的原始缓存
}
for(int i=0;i<m;i++){
int a,b,c;
cin>>a>>b>>c;
add(a,b,c);
//执行增值操作
//但是只是对差分数组 进行了增值操作
//a数组是b数组的前缀和数组
//而b数组 就是a数组 未经扫描的冗沉 缓存
//我们对b数组的操作 只是暂时记录了增减情况 还没把这个情况汇报给a数组
}
for(int i=1;i<=n;i++){
a[i]=a[i-1]+b[i];
//扫描一编操作的增减值
//计算前缀和
}
int minn=a[1];
for(int i=1;i<=n;i++){
minn=min(a[i],minn);
}
cout<<minn;
return 0;
}
举个例子模拟一下缓存池情况
对于以下代码
插入改组数据
/*
6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1*/
#include<iostream>
using namespace std;
const int N=100010;
int a[N],b[N]; int n,m;
void insert(int l,int r,int c){
b[l]+=c;
//b[l]到n的位置加上 c
b[r+1]-=c;
//减去 上一步中多加的【r+1】到n的部分
cout<<"当前缓存池 is ";
for(int i=1;i<=n;i++){
cout<<b[i]<<' ';
}
cout<<endl;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
insert(i,i,a[i]);
//此处的insert 操作的实际效果
//与该语句 b[i]=a[i]-a[i-1]; 相同 ;
//初始化 插入差分数组
//使b[i]变成当前 a[i]的差分数组
//b数组为空 将a数组的原始值插入b数组 就是按照差分处理的形式
//初始化b数组的原始缓存
}
while(m--){
int l,r,c;
cin>>l>>r>>c;
insert (l,r,c);
//执行增值操作
//但是只是对差分数组 进行了增值操作
//a数组是b数组的前缀和数组
//而b数组 就是a数组 未经扫描的冗沉 缓存
//我们对b数组的操作 只是暂时记录了增减情况 还没把这个情况汇报给a数组
}
for(int i=1;i<=n;i++){
a[i]=a[i-1]+b[i];
//扫描一编操作的增减值
//计算前缀和
}
for(int i=1;i<=n;i++){
//cout<<a[i]<<' ';
}
return 0;
}
缓存池情况

相关文章:
洛谷 P2367 语文成绩 刷题笔记
P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 差分 令a[i]为b[i]数组的前缀和 a[n]b[1]b[2]b[3].....b[n]; a[n-1]b[1]b[2]b[3].....b[n-1]; 构造差分数组 b[i]a[i]-a[i-1]; 有什么好处 当我们想对a[l]--a[r]范围内所有数据加上一个数x 不必循环 for(i…...
Opencv_CUDA实现推理图像前处理与后处理
Opencv_CUDA实现推理图像前处理与后处理 通过trt 或者 openvino部署深度学习算法时,往往会通过opencv的Mat及算法将图像转换为固定的格式作为输入openvino图像的前后处理后边将在单独的文章中写出今晚空闲搜了一些opencv_cuda的使用方法,在此总结一下前…...
Android.bp 和 Android.mk 的对应关系
参考 Soong 构建系统 Android.mk 转为 Android.bp 没有分支、循环等流程控制的简单的 Android.mk ,可以通过 androidmk 命令转化为 Android.bp source 、lunch 之后执行即可。 androidmk Android.mk > Android.bp对应关系 Android 13 ,build/soon…...
力扣-收集足够苹果的最小花园周长[思维+组合数]
题目链接 题意: 给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,且每条边都与两条坐标轴之一平行。 给你一个整…...
【C语言】自定义类型:结构体深入解析(三)结构体实现位段最终篇
文章目录 📝前言🌠什么是位段?🌉 位段的内存分配🌉VS怎么开辟位段空间呢?🌉位段的跨平台问题🌠 位段的应⽤🌠位段使⽤的注意事项🚩总结 📝前言 本…...
基于Hexo+GitHub Pages 的个人博客搭建
基于HexoGitHub Pages 的个人博客搭建 步骤一:安装 Node.js 和 Git步骤二:创建Github Pages 仓库步骤二:安装 Hexo步骤三:创建 Hexo 项目步骤四:配置 Hexo步骤五:创建新文章步骤六:生成静态文件…...
7. 结构型模式 - 代理模式
亦称: Proxy 意图 代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。 问题 为什么要控制对于某个对象的访问呢? 举个例子ÿ…...
挑战Python100题(6)
100+ Python challenging programming exercises 6 Question 51 Define a class named American and its subclass NewYorker. Hints: Use class Subclass(ParentClass) to define a subclass. 定义一个名为American的类及其子类NewYorker。 提示:使用class Subclass(Paren…...
gin实现登录逻辑,包含cookie,session
users/login.html {{define "users/login.html"}} <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录页面</title> </head> <body><form method"post" a…...
云原生Kubernetes:K8S集群版本升级(v1.22.14 - v1.23.14)
目录 一、理论 1.K8S集群升级 2.环境 3.升级集群(v1.23.14) 4.验证集群(v1.23.14) 二、实验 1. 环境 2.升级集群(v1.23.14) 2.验证集群(v1.23.14) 一、理论 1.K8S集群升级 …...
C++面向对象(OOP)编程-位运算详解
本文主要介绍原码、位运算的种类,以及常用的位运算的使用场景。 目录 1 原码、反码、补码 2 有符号和无符号数 3 位运算 4 位运算符使用规则 4.1 逻辑移位和算术移位 4.1.1 逻辑左移和算法左移 4.1.2 逻辑右移和算术右移 4.1.3 总结 4.2 位运算的应用场景 …...
linux运行服务提示报错/usr/bin/java: 没有那个文件或目录
如果是直接从官网下载的jdk解压安装,那么/usr/bin/没有java的软连接,即/usr/bin/java,所以即使在/etc/profile中配置了jdk的环境变量也没用,识别不到。 方法一:用java的执行路径配置/usr/bin/java软连接(优…...
一篇文章教会你数据仓库之详解拉链表怎么做
前言 本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理、设计、以及在我们大数据场景下的实现方式。 全文由下面几个部分组成: 先分享一下拉链表的用途、什么是拉链表。通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和…...
C/S医院检验LIS系统源码
一、检验科LIS系统概述: LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化,检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后,自动生成打印报告,通过网络存储在数据库中ÿ…...
项目应用多级缓存示例
前不久做的一个项目,需要在前端实时展示硬件设备的数据。设备很多,并且每个设备的数据也很多,总之就是数据很多。同时,设备的刷新频率很快,需要每2秒读取一遍数据。 问题来了,我们如何读取数据,…...
音视频技术开发周刊 | 325
每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 AI读心术震撼登顶会!模型翻译脑电波,人类思想被投屏|NeurIPS 2023 在最近举办的NeurIPS大会上,研究人员展示了当代AI更震撼…...
量化服务器 - 后台挂载运行
服务器 - 后台运行 pip3命令被kill 在正常的pip命令后面加上 -no-cache-dir tmux 使用教程 https://codeleading.com/article/40954761108/ 如果你希望在 tmux 中后台执行一个 Python 脚本,你可以按照以下步骤操作: 启动 tmux: tmux这将会创建一个新…...
使用tesla gpu 加速大模型,ffmpeg,unity 和 UE等二三维应用
我们知道tesla gpu 没有显示器接口,那么在windows中怎么使用加速unity ue这种三维编辑器呢,答案就是改变注册表来加速相应的三维渲染程序. 1 tesla gpu p40 p100 加速 在windows中使用regedit 来改变 核显配置, 让p100 p40 等等显卡通过核显…...
巅峰画师Midjourney:新时代的独角兽
介绍 AI绘画领域中,Midjourney处于绝对地位,并且一年时间就登顶。 Midjourney是一家独立的AI研究实验室,探索新的思维媒介,拓展人类的想象力。 它由一个小型的自筹资金团队组成,专注于设计、人类基础设施和AI。 在AI绘画领域,Midjourney取得了非常突出…...
入行 4 年,跳槽 2 次,我摸透了软件测试这一行!
最近几年行业在如火如荼的发展壮大,以及其他传统公司都需要大批量的软件测试人员,但是最近几年的疫情导致大规模裁员,让人觉得行业寒冬已来,软件测试人员的职业规划值得我们深度思考。 大家都比较看好软件测试行业,只是…...
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C#版)
文档概述 本文介绍大牛直播SDK(SmartMediaKit)在 Windows 平台下 RTSP、RTMP 直播播放模块的集成方法,面向 Windows Forms、WPF 等 C# 客户端应用场景,重点说明 SDK 集成准备、播放器初始化、RTSP/RTMP 播放、播放参数配置、事件…...
避开这些坑!国产电池管理AFE芯片DVC1124的I2C驱动开发实战指南
避开这些坑!国产电池管理AFE芯片DVC1124的I2C驱动开发实战指南 在BMS(电池管理系统)开发中,AFE(模拟前端)芯片的稳定通信是确保电池数据准确采集的基础。DVC1124作为国产高性能电池监测芯片,其I…...
通过TaotokenCLI工具一键配置多开发环境提升团队协作效率
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置多开发环境提升团队协作效率 在团队协作开发中,一个常见的挑战是确保所有成员都能快速、…...
银河麒麟V10找不到应用商店?手把手教你从源码编译安装录屏神器Capture(附ffmpeg配置避坑)
银河麒麟V10系统下从源码构建专业录屏工具Capture的全流程指南 在国产操作系统银河麒麟V10上,许多用户发现系统默认没有提供应用商店,导致无法直接安装常用的录屏工具。本文将详细介绍如何从源码编译安装功能强大的录屏软件Capture,并解决ARM…...
TegraRcmGUI终极指南:Windows上最简单的Switch注入工具免费使用教程
TegraRcmGUI终极指南:Windows上最简单的Switch注入工具免费使用教程 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Windo…...
从URP到Built-in:手把手教你迁移Unity第三人称模板并成功换人(解决Shader报错)
从URP到Built-in:Unity第三人称模板迁移全流程实战指南 当你在Unity中打开官方提供的Third Person模板,准备将其应用到自己的项目时,可能会遇到一个棘手的问题——这个模板是基于URP(Universal Render Pipeline)设计的…...
ReTerraForged终极指南:5个技巧打造专业级Minecraft地形生成
ReTerraForged终极指南:5个技巧打造专业级Minecraft地形生成 【免费下载链接】ReTerraForged TerraForged for modern MC versions 项目地址: https://gitcode.com/gh_mirrors/re/ReTerraForged ReTerraForged是一款专为Minecraft 1.19版本设计的革命性地形生…...
长期使用 Taotoken 后对账单追溯与成本分析的实际体验
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用 Taotoken 后对账单追溯与成本分析的实际体验 在项目开发中引入大模型能力后,成本控制与资源优化是团队负责人…...
5分钟快速搭建Windows RTMP流媒体服务器:新手完整指南
5分钟快速搭建Windows RTMP流媒体服务器:新手完整指南 【免费下载链接】nginx-rtmp-win32 Nginx-rtmp-module Windows builds. 项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-win32 想要在Windows系统上搭建自己的直播服务器吗?nginx…...
Agent生产费用智能管控与超支预警功能配置:2026企业级ROI重塑指南
在2026年5月的当下,全球人工智能产业已从“大模型参数竞赛”全面转向“智能体(Agent)价值落地阶段”。根据2026年5月21日最新的行业数据显示,企业对Agent的投入已占到其IT预算的35%以上。然而,随着Agent系统从实验性De…...
