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

洛谷 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部署深度学习算法时&#xff0c;往往会通过opencv的Mat及算法将图像转换为固定的格式作为输入openvino图像的前后处理后边将在单独的文章中写出今晚空闲搜了一些opencv_cuda的使用方法&#xff0c;在此总结一下前…...

Android.bp 和 Android.mk 的对应关系

参考 Soong 构建系统 Android.mk 转为 Android.bp 没有分支、循环等流程控制的简单的 Android.mk &#xff0c;可以通过 androidmk 命令转化为 Android.bp source 、lunch 之后执行即可。 androidmk Android.mk > Android.bp对应关系 Android 13 &#xff0c;build/soon…...

力扣-收集足够苹果的最小花园周长[思维+组合数]

题目链接 题意&#xff1a; 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你一个整…...

【C语言】自定义类型:结构体深入解析(三)结构体实现位段最终篇

文章目录 &#x1f4dd;前言&#x1f320;什么是位段&#xff1f;&#x1f309; 位段的内存分配&#x1f309;VS怎么开辟位段空间呢&#xff1f;&#x1f309;位段的跨平台问题&#x1f320; 位段的应⽤&#x1f320;位段使⽤的注意事项&#x1f6a9;总结 &#x1f4dd;前言 本…...

基于Hexo+GitHub Pages 的个人博客搭建

基于HexoGitHub Pages 的个人博客搭建 步骤一&#xff1a;安装 Node.js 和 Git步骤二&#xff1a;创建Github Pages 仓库步骤二&#xff1a;安装 Hexo步骤三&#xff1a;创建 Hexo 项目步骤四&#xff1a;配置 Hexo步骤五&#xff1a;创建新文章步骤六&#xff1a;生成静态文件…...

7. 结构型模式 - 代理模式

亦称&#xff1a; Proxy 意图 代理模式是一种结构型设计模式&#xff0c; 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问&#xff0c; 并允许在将请求提交给对象前后进行一些处理。 问题 为什么要控制对于某个对象的访问呢&#xff1f; 举个例子&#xff…...

挑战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.升级集群&#xff08;v1.23.14&#xff09; 4.验证集群&#xff08;v1.23.14&#xff09; 二、实验 1. 环境 2.升级集群&#xff08;v1.23.14&#xff09; 2.验证集群&#xff08;v1.23.14&#xff09; 一、理论 1.K8S集群升级 …...

C++面向对象(OOP)编程-位运算详解

本文主要介绍原码、位运算的种类&#xff0c;以及常用的位运算的使用场景。 目录 1 原码、反码、补码 2 有符号和无符号数 3 位运算 4 位运算符使用规则 4.1 逻辑移位和算术移位 4.1.1 逻辑左移和算法左移 4.1.2 逻辑右移和算术右移 4.1.3 总结 4.2 位运算的应用场景 …...

linux运行服务提示报错/usr/bin/java: 没有那个文件或目录

如果是直接从官网下载的jdk解压安装&#xff0c;那么/usr/bin/没有java的软连接&#xff0c;即/usr/bin/java&#xff0c;所以即使在/etc/profile中配置了jdk的环境变量也没用&#xff0c;识别不到。 方法一&#xff1a;用java的执行路径配置/usr/bin/java软连接&#xff08;优…...

一篇文章教会你数据仓库之详解拉链表怎么做

前言 本文将会谈一谈在数据仓库中拉链表相关的内容&#xff0c;包括它的原理、设计、以及在我们大数据场景下的实现方式。 全文由下面几个部分组成&#xff1a; 先分享一下拉链表的用途、什么是拉链表。通过一些小的使用场景来对拉链表做近一步的阐释&#xff0c;以及拉链表和…...

C/S医院检验LIS系统源码

一、检验科LIS系统概述&#xff1a; LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff…...

项目应用多级缓存示例

前不久做的一个项目&#xff0c;需要在前端实时展示硬件设备的数据。设备很多&#xff0c;并且每个设备的数据也很多&#xff0c;总之就是数据很多。同时&#xff0c;设备的刷新频率很快&#xff0c;需要每2秒读取一遍数据。 问题来了&#xff0c;我们如何读取数据&#xff0c…...

音视频技术开发周刊 | 325

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 AI读心术震撼登顶会&#xff01;模型翻译脑电波&#xff0c;人类思想被投屏&#xff5c;NeurIPS 2023 在最近举办的NeurIPS大会上&#xff0c;研究人员展示了当代AI更震撼…...

量化服务器 - 后台挂载运行

服务器 - 后台运行 pip3命令被kill 在正常的pip命令后面加上 -no-cache-dir tmux 使用教程 https://codeleading.com/article/40954761108/ 如果你希望在 tmux 中后台执行一个 Python 脚本&#xff0c;你可以按照以下步骤操作&#xff1a; 启动 tmux: tmux这将会创建一个新…...

使用tesla gpu 加速大模型,ffmpeg,unity 和 UE等二三维应用

我们知道tesla gpu 没有显示器接口&#xff0c;那么在windows中怎么使用加速unity ue这种三维编辑器呢&#xff0c;答案就是改变注册表来加速相应的三维渲染程序. 1 tesla gpu p40 p100 加速 在windows中使用regedit 来改变 核显配置&#xff0c; 让p100 p40 等等显卡通过核显…...

巅峰画师Midjourney:新时代的独角兽

介绍 AI绘画领域中&#xff0c;Midjourney处于绝对地位&#xff0c;并且一年时间就登顶。 Midjourney是一家独立的AI研究实验室,探索新的思维媒介,拓展人类的想象力。 它由一个小型的自筹资金团队组成,专注于设计、人类基础设施和AI。 在AI绘画领域,Midjourney取得了非常突出…...

入行 4 年,跳槽 2 次,我摸透了软件测试这一行!

最近几年行业在如火如荼的发展壮大&#xff0c;以及其他传统公司都需要大批量的软件测试人员&#xff0c;但是最近几年的疫情导致大规模裁员&#xff0c;让人觉得行业寒冬已来&#xff0c;软件测试人员的职业规划值得我们深度思考。 大家都比较看好软件测试行业&#xff0c;只是…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...