【板子】

2023-11-10

线段树

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<iostream>
 6 using namespace std;
 7 
 8 #define maxn 200000
 9 
10 int n,m,fg,a,b;
11 long long x;
12 int num[maxn+5];
13 
14 struct tree{
15     int l;
16     int r;
17     long long sum;
18     int lazy;
19 }t[maxn*4+5];
20 
21 void pushup(int u){
22     t[u].sum=t[u<<1].sum+t[u<<1|1].sum;
23 }
24 
25 void pushdown(int u){
26     if(t[u].lazy){
27         t[u<<1].lazy+=t[u].lazy;
28         t[u<<1|1].lazy+=t[u].lazy;
29         t[u<<1].sum+=(t[u<<1].r-t[u<<1].l+1)*t[u].lazy;
30         t[u<<1|1].sum+=(t[u<<1|1].r-t[u<<1|1].l+1)*t[u].lazy;
31         t[u].lazy=0;
32     }
33 }
34 
35 void build(int u,int l,int r){
36     t[u].l=l;
37     t[u].r=r;
38     t[u].lazy=0;
39     if(l==r){
40         t[u].sum=num[l];
41         return;
42     }
43     int mid=(l+r)>>1;
44     build(u<<1,l,mid);
45     build(u<<1|1,mid+1,r);
46     pushup(u);
47 }
48 
49 void update(int u,int l,int r,long long x){
50     if(t[u].l>=l&&t[u].r<=r){
51         t[u].lazy+=x;
52         t[u].sum+=(t[u].r-t[u].l+1)*x;
53         return;
54     }
55     pushdown(u);
56     int mid=(t[u].l+t[u].r)>>1;
57     if(l<=mid)update(u<<1,l,r,x);
58     if(r>mid)update(u<<1|1,l,r,x);
59     pushup(u);
60 }
61 
62 long long query(int u,int l,int r){
63     if(t[u].l>=l&&t[u].r<=r)return t[u].sum;
64     pushdown(u);
65     int mid=(t[u].l+t[u].r)>>1;
66     long long ans=0;
67     if(l<=mid)ans+=query(u<<1,l,r);
68     if(r>mid)ans+=query(u<<1|1,l,r);
69     return ans;
70 }
71 
72 int main(){
73     cin>>n;
74     for(int i=1;i<=n;i++)
75         cin>>num[i];
76     build(1,1,n);
77     cin>>m;
78     for(int i=1;i<=m;i++){
79         cin>>fg;
80         if(fg==1){
81             cin>>a>>b>>x;
82             update(1,a,b,x);
83         }
84         else if(fg==2){
85             cin>>a>>b;
86             cout<<query(1,a,b)<<endl;
87         }
88     }
89     return 0;
90 }
View Code

 

转载于:https://www.cnblogs.com/chezhongyang/p/11584976.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【板子】 的相关文章

  • Android Studio中Intel HAXM的那些坑

    最近用过两台电脑折腾Android Studio 都是windows的系统 不知道为什么连着踩了两个坑 第一台我结束了qemu system i386 exe这个倒霉的进程 导致我开启模拟器的时候一直提示我没有安装Intel HAXM 没办
  • mySQL常用DDL命令

    mysql常用DDL命令 1 创建数据库 2 查看数据库 3 查看数据库创建明细 4 修改数据库编码 5 删除数据库 6 使用数据库 7 创建表 8 查看表的结构 9 在表中插入列 字段 10 修改列 字段 的属性 11 删除某列 字段 1
  • 首字母变大写

    小写字母变大写m 0 m 0 32 include
  • 【周末闲谈】剑指offer,了解面试,学会面试

    我们在找工作时 需要结合自己的现状 针对意向企业做好充分准备 作为程序员 你有哪些面试IT技术岗的技巧 你可以从一下几个方向谈谈你的想法和观点 个人主页 个人主页 系列专栏 周末闲谈 文章目录 前言 剑指Offer 面试指南 一 了解你的面
  • Java学习笔记(十八)

    Spring Boot 什么是 Spring Boot Spring Boot 已经建立在现有 spring 框架之上 使用 spring 启动 避免了之前我们必须做的所有样板代码和配置 因此 SpringBoot 可以帮助我们以最少的工作
  • vue项目中实现扫码登录

    1 需求描述 PC端实现两种登录方式 账号登录 扫码登录 扫码登录未绑定账号 弹框提示绑定账号 账号登录 未绑定微信 弹框提示 效果图 2 扫码登录未绑定账号 弹框提示绑定账号 2 1 安装 qrcode npm install qrcod
  • TFS淘宝分布式文件核心存储引擎源码架构剖析实现

    这里写目录标题 相关背景介绍 相关设计思路介绍 项目基础 文件系统接口 扇区 文件结构 关于inode 为什么淘宝不用小文件存储 淘宝网为什么不用普通文件存储海量小数据 设计思路 关键数据结构哈希表 代码日志 mmp file h mmap
  • 31_access 日志

    文章目录 过滤模块的位置 返回响应 加工响应内容 过滤模块的位置 接收 http 头部 gt pre access 阶段 gt limit req 模块 gt limit conn 模块 gt access 阶段 gt access 模块
  • Java java.lang.NumberFormatException: For input string: ““问题解决

    问题描述 java lang NumberFormatException For input string 问题分析 1 使用Long parseLong Integer parseInt Double parseDouble Float
  • BP神经网络理解原理——用Python编程实现识别手写数字(翻译英文文献)

    BP神经网络理解原理 用Python编程实现识别手写数字 备注 这里可以用这个方法在csdn中编辑公式 https www zybuluo com codeep note 163962 一 前言 本文主要根据一片英文书籍进行学习 并且尝试着
  • CCProxy网络共享代理服务端配置使用

    CCProxy是一个局域网络共享工具 可用于VPN共享等 1 解压安装CCProxy工具 双击CCProxy exe启动 打开如下界面 2 打开设置界面 设置对外共享的IP地址和端口号 如下 点击确定 最后再点击启动即可
  • OAuth2扩展access_token(二)

    接着上一篇继续展示其他功能 2 1 如何拿着生成的access token获取用户详情信息 有的小伙伴可能好奇这个jti是合适呢么东西 这个是jwt生成令牌的唯一标识 后期我们还要拿它来整合redis哦 因为他是唯一的 我们可以把它作为ke
  • Mac系统CLion中C语言EOF如何结束输入(楼主亲测有效)

    今日发现在mac系统CLion中C语言EOF没有办法结束输入 如下代码 我写了一个C语言程序 以EOF结束 include
  • 《Thinking in Java》读后总结与感想

    作为Java界的四大名著之一 Thinking in Java 一直备受推崇 我很早就知道了这本书 当时只是初涉Java 粗略的翻了翻之后觉得看起来这本书讲的比较深就没有再去碰它 后来Java基础学完之后又忙着学Android开发的知识 就
  • 如何打开mysql_MySQL教程

    MySQL经常和 数据库 连在一起读 这很容易对新手造成误解 认为MySQL就是一个数据库 其实不是这样 MySQL是数据库的集合 MySQL里面有很多数据库 那么数据是直接存在数据库里的吗 并不 数据库底下还有一个叫做数据表的存储单元 数
  • 无需公网IP,安全访问云端资源,3步搞定

    某企业将OA ERP Git代码库等业务资源 分别部署在了公有云和私有云 但随着业务发展 分部和移动办公人员逐渐增多 如何高效实现50名员工安全远程访问云端资源成了难题 使用MPLS专线 IPSec VPN等传统方案实现远程访问 不仅实施费
  • Spring的入门及案例----Ioc

    一 Spring的核心 Spring的核心是控制反转 IoC 和面向切面 AOP 简单来说 Spring是一个分层的JavaSE EEfull stack 一站式 轻量级开源框架 IoC 控制反转 对于Spring来说 Spring创建对象
  • 通过css内修改input框placeholder样式

    使用css内修改input框placeholder样式 需求将input框内placeholder属性文字设置颜色及字体大小 修改前 修改后 代码 input webkit input placeholder WebKit Blink Ed
  • 利用std::async实现异步功能

    c 11标准推出了多线程功能 其中我比较喜欢的是把async和future联合起来使用 实现异步功能 目录 首先介绍async的使用办法 输入参数 返回值 std future的使用办法 异步结果的获取 等待异步结果的返回 wait wai
  • Android图像开源视图:SmartImageView

    项目需要 开发中需要加载图片 自己要写图片从网上下载的方法 还要写缓存 等等 在网上找到一个开源项目 smartImageVIew 支持从URL和通讯录中获取图像 可以替代Android标准的ImageView 特征 根据URL地址装载图像

随机推荐

  • C# ---Constructor, Object Initializer, Property, Constant, and readonly

    C Constructor Object Initializer Property Constant and Readonly Constructor and Object Initializer Fields and Property 如
  • queue使用方法

    queue使用方法 提示 如果队列满了 那么使用put放入数据会等待 直到队列有空闲位置才可以放入 放入消息的时候不会进行等待 如果发现队列满了不能放入数据 那么会直接崩溃 import multiprocessing import tim
  • Spring Boot使用@Async实现异步调用

    1 Spring Boot使用 Async实现异步调用 链接 link 原文 http blog csdn net a286352250 article details 53157822 项目GitHub地址 https github co
  • 大数据背景下如何加强高校财务管理水平

    1 建立软 硬件平台 智能的软件平台是大数据技术实施的主要依托 必须加强与大数 据相适应的平台建设 才能充分发挥大数据技术的优势 服务好高校 财务管理工作 云平台存储便捷 处理高效 管理智能 是与大数据技术适应的 最佳软件平台 因此 高校要
  • python宽度学习训练后模型的持久化存储和快速调用

    在模型训练完成后 我们需要对我们训练出来的模型进行持久性储存 这样既能将我们调参后得到的最佳模型进行存储 还可以方便后期同团队的人进行调用预测 1 原理 此处用到的是sklearn库中的joblib包进行存储和加载 因为宽度学习的类属于自定
  • 华为OD机考-构建输入和输出

    华为OD机考 ACM模式下创建输入 概述 下文列举机考过程中常见输入的构造方法 如字符串 多维数组等 并对用到的函数进行详细讲解 最后通过真题实操巩固知识点 一 机考中常见的输入 1 输入字符串 输入一行字符串 str1 input pri
  • 36 数据增广 [动手学深度学习v2]

    数据增强 增加一个已有数据集 使得有更多的多样性 在语言里面加入各种不同的背景噪音 改变图片的颜色和形状 图像增广 import torch import torchvision from torch import nn 左右翻转图像 to
  • 深度学习刷 SOTA 有哪些 trick?

    深度学习刷 SOTA 有哪些 trick 此问题在知乎上有超 1700 人关注 浏览量超 32 万 相信是大家都非常关心的问题 快一起看看下面的分享吧 希望可以帮助到大家 对于图像分类任务 让我们以 Swin Transformer 中使用
  • 【2023】基于docker 实现部署jar包项目(包括单个和多个一起部署)

    建议学习本博客之前 需要对docke的基本命令有过学习 目录 前言 1 项目打包 2 编写Dockerfile文件 2 1 单个jar部署 Dockerfile文件常用命令 2 2 1 编写一个Dockerfile 文件格式制作镜像 2 1
  • AngularJs的生命周期

    AngularJs的生命周期分为六个阶段 编译 AngularJs会遍历浏览器提供的dom树 尝试参照已注册的指令集来匹配每个元素 属性 注释和css类 每当匹配一个指令时 ag就会调用该指令的编译函数 该函数返回一个连接函数 ag会收集所
  • linux 命令行操作串口

    linux 命令行操作串口 1 获取串口号 2 配置串口属性 stty命令 3 串口数据读写操作 4 解析数据 5 后台运行 6 绘制数据 Linux stty命令 一 参数 二 用法 Linux下minicom操作 Linux minic
  • 算法第六题:压缩字符串 2021-08-21

    一 题目 给你一个字符数组 chars 请使用下述算法压缩 从一个空字符串 s 开始 对于 chars 中的每组 连续重复字符 如果这一组长度为 1 则将字符追加到 s 中 否则 需要向 s 追加字符 后跟这一组的长度 压缩后得到的字符串
  • WPF的MVVM框架Stylet开发文档 14.7-14.9 杂项、性能、技术

    14 7 StyletIoC 杂项 文档地址 此页面包含其他各种值得一提的点点滴滴 但还不够大 不值得单独放置一个页面 循环依赖 循环依赖项 下面记录的类型除外 会导致 StackOverflow 异常 提前发现这些问题并非易事 虽然 St
  • C# 如何将EMF文件转换成PNG文件

    本文主要讲述如何将EMF文件转换成PNG文件 目录 一 EMF文件和PNG文件 二 代码 一 EMF文件和PNG文件 EMF文件和PNG文件都是Windows系统可以读取的图片文件格式 所以转换比较简单 二 代码 有几个地方需要要注意 1
  • Softing D-PDU API 11_30_010 新版本支持TLS

    一 TLS的概述 安全传输层协议 Transport Layer Security 缩写 TLS 前身为安全套接层 Secure Sockets Layer 缩写 SSL 用于在通信应用程序之间提供保密性和数据完整性 该协议由两层组成 一个
  • 质因数分解(唯一分解定理)

    质因数分解 题目描述 多数据 给出t个数 求出它的质因子个数 数据没坑 难度降低 输入描述 Input Description 第一行 t 之后t行 数据 输出描述 t行 分解后结果 质因子个数 样例输入 2 11 6 样例输出 1 2 数
  • vs2010 点击时应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序解决办法

    昨天做项目的时候 在安装一个win32的应用程序后再次启动vs2010时发现报错 就是如下的错误 哎呀 我的天 关键时刻就打不开了 这么怎么办呢 赶紧去搜解决办法 1 使用Directx修复 修复了180个左右的dll文件 但是没有解决我的
  • 卷积操作中的卷积核形状到底是怎样的

    input shape 2 5 5 kernal size 2 3 3 kernal amount 3 卷积核的维度与输入的维度一致 都是三维的 最后的输出的通道数与卷积核数量一致 用了三个卷积核 就会输出三个通道
  • IDEA最好用的插件推荐,吐血整理!

    作者 明明如月 来源 慕课专栏 阿里巴巴Java开发手册 1 前言 俗话说 工欲善其事 必先利其器 为了助力大家的学习和进阶 本小节介绍几个对 Java 学习非常有帮助的 IDEA 插件 代码反编译和反汇编工具 以及非常不错的网站等 2 I
  • 【板子】

    线段树 1 include