#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
struct tree{
#define M N<<2
int l[M],r[M],sum[M],Max[M];
void pushup(int p){
sum[p]=sum[p<<1]+sum[p<<1|1];
Max[p]=max(Max[p<<1],Max[p<<1|1]);
}
void build(int p,int L,int R){
l[p]=L,r[p]=R;
if(L==R){
sum[p]=Max[p]=a[L];
return;
}
int mid=(L+R)>>1;
build(p<<1,L,mid);
build(p<<1|1,mid+1,R);
pushup(p);
}
void Mod(int p,int L,int R,int mod){
if(Max[p]<mod)return;
if(l[p]==r[p]){
sum[p]%=mod,Max[p]%=mod;
return;
}
int mid=(l[p]+r[p])>>1;
if(L<=mid)Mod(p<<1,L,R,mod);
if(R>mid)Mod(p<<1|1,L,R,mod);
pushup(p);
}
void update(int p,int pos,int k){
if(l[p]==r[p]){
sum[p]=Max[p]=k;
return;
}
int mid=(l[p]+r[p])>>1;
if(pos<=mid)update(p<<1,pos,k);
if(pos>mid)update(p<<1|1,pos,k);
pushup(p);
}
long long query(int p,int L,int R){
if(L<=l[p]&&r[p]<=R)return sum[p];
int mid=(l[p]+r[p])>>1;long long ans=0;
if(L<=mid)ans+=query(p<<1,L,R);
if(mid<R)ans+=query(p<<1|1,L,R);
return ans;
}
}tr;
int main(){
cin>>a[1]>>a[2];
tr.build(1,1,2);
cout<<tr.query(1,1,2);
return 0;
}
相关推荐
嵌入式SPI总线抽象设计:跨平台驱动与分层解耦实践
SPI(串行外设接口)是嵌入式系统中应用最广泛的同步串行通信协议,其核心价值在于高吞吐、低开销与硬件简洁性。其工作原理基于主从架构、全双工/半双工时序及片选(CS)控制,依赖CPOL/CPHA组合定义四种标准模式。在工程实践中,SPI常面临硬件资源受限、多外设共用总线、MCU平台迁移等挑战,导致驱动复用率低、维护成本高。通过结构体+函数指针实现的分层抽象——将物理总线、协议适配与设备驱动解耦,可显著提升代码可移植性与扩展性。该方法天然支持硬件SPI与GPIO模拟SPI双模式切换,并已在STM32等主流MCU
【BZOJ3218】a + b Problem 可持久化线段树优化建图
【BZOJ3218】a + b Problem 题解:思路很简单,直接最小割。S->i,容量为Bi;i->T,容量为Wi;所有符合条件的j->new,容量inf;new->i,容量Pi。 但是符合条件的j有很多,并且限制有二维,所以用可持久化线段树优化建图即可。 #include <cstdio> #include <cstr...
基于STM32F103C8T6的红外循迹避障小车
编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)
A+B线段树版
【代码】A+B线段树版。
ESP32S3新手避坑:用IDF5.0驱动GT911触摸屏,我踩过的三个雷都给你填平了
本文详细解析了在ESP32S3开发板上使用IDF5.0驱动GT911触摸屏时常见的三大问题:软重启失效、状态寄存器读取异常和初始化参数差异。通过逻辑分析和硬件调试工具,提供了针对性的解决方案和优化建议,帮助开发者高效完成触摸屏驱动开发。
葵花(Himawari)8/9卫星数据处理
李国春 葵花8(含葵花9,下同)是静止气象卫星,数据范围是星下点为140°E赤道上空的大圆盘。空间分辨率有500m、1km和2km三种。虽然其空间分辨率不高,但是有极高的时间分辨率,观测数据刷新仅10分钟。这对一些生态、农业和大范围自然灾害的动态检测具有非常高的应用价值。本文介绍如何使用RSD处理葵花8数据。
Codeforces Round 979 (Div. 2)(A,B,C,D)(思维,线段树)
因此我们可以使用线段树来维护区间最大值。),我们统计其左边的最大值是否为。,则为YES,否则为NO。就为YES,否则为NO。
LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧
本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。
牛客练习赛130(A,B,C)(二进制,思维,前缀和,线段树)
的区间和,每以此询问即是一次单点修改和区间查询。因此,我们可以用两棵线段树分别维护。我们可以倒着进行调整,如果当前的。进行二进制拆位,如果同时出现。时,必然无解,否则一定有解。,则说明骑士的血多了。相等,一步都不需要。
Spring Authorization Server自定义密码模式:突破标准OAuth2限制,实现MFA与复杂业务集成
OAuth 2.0授权框架是构建现代应用安全体系的基石,其密码模式(Resource Owner Password Credentials Grant)提供了一种直接的资源所有者凭证交换令牌的机制。该模式的核心原理是客户端收集用户密码并直接向授权服务器请求访问令牌,适用于受信任的客户端场景。在技术价值上,它简化了某些传统应用的OAuth集成流程。然而,标准实现往往难以满足复杂的现实业务需求,例如需要集成多因素认证(MFA)、对接外部LDAP目录服务或执行自定义密码加密校验等场景。Spring Authori
Modelsim:LPDDR5仿真(含美光仿真模型官方sv&vcs代码)
虽然,三星在设计跟量产上,早于其他家存储产商,但是镁光后来居上了,是业界首家支持全速 LPDDR5 的供应商,并且开发者在做开发的时候,也是用美光颗粒比较多,所以这里就先以美光的仿真模型为主进行仿真。 本工程为美光官方工程,支持Modelsim、VCS、ncverilog三种仿真器仿真。模型破解过,为完整system-verilog代码。
Codeforces Round 975 (Div. 2)(A,B,C,D线段树解法,E)
因此我们可以用线段树动态维护区间最大值,区间查询操作为加减,枚举每一个。我们考虑预处理出每一个区间对答案产生的贡献。的时候,只需要对原先的卡牌进行分组即可。分别求出奇数位和偶数位的最大值,之后进行比较即可。因此,我们可以预处理出前缀最小值和后缀最小值。这个时间节段的每一个节点已经被征服了多少个点。个卡牌分为一组,对于我们最后一组的卡牌,会有。表示卡牌个数最多的那个卡牌类型的数量。的区间,每一个点都减去对应的时间。个,如果我们想要将其补全,需要再添加。的时候,我们依旧假设可以将每。中间的数对答案产生的贡献。
33、嵌入式系统中的内存操作与实时操作系统
本博客详细探讨了嵌入式系统中的内存操作和实时操作系统(RTOS)的基本原理及应用。内容涵盖C、C++和MicroPython三种语言下的SDRAM读写示例,并结合机器人真空吸尘器的实际应用说明内存的使用场景。此外,还介绍了RTOS的核心概念、组件及其工作机制,包括任务、事件、互斥锁、信号量、队列等,并以FreeRTOS和Mbed OS为例展示了RTOS的配置与使用方法。最后,通过常见问题和实践项目加深对嵌入式系统开发的理解。
gym -101864 - B . A Leap of Faith (线段树求相交区间个数)
链接:B - A Leap of Faith 题意: 给 n 个 A类区间和 m 个 B 类区间,区间的左右端点为 l , r. 给出 q 次修改,每次询问加入一个 A 类区间或者 B 类区间,求每次修改后有交集的A 类与B类区间的对数。 思路: 求与 【l , r】区间相交的区间个数,可以先求出与它不相交的区间个数,也就是右端点比 l 小 ,或者左端点比 r 大的区间的个数(这个经常用),然后就可以用线段树维护,把区间的几个端点用4个线段树维护,就可以很快求出区间个数。 所以初始答案,我们只需要遍历 n
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
Codeforces Round #590 (Div. 3) (A,B,C,D(线段树),E(线段树))
最近本来是不打算写CF的题解的,但这场是我第一次上蓝的场,就来写写吧。。 题目链接 前三题水题,我15分钟秒了。。 A. Equalize Prices Again #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=(b);++i) #define mem(a,x) memset(a,x,sizeof(a...
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
codeforces 602B Approximating a Constant Range(线段树+尺取法)
题目链接: http://codeforces.com/problemset/problem/602/B 题目大意: 给一段长为N的序列,现在要找一段区间,要求区间里的最大值和最小值之差不超过1,问最大的区间长度是多少。 思路: 在众多的方法前,我选择了最省力又暴力的线段树= = 利用尺取法,定义左右两个指针,维护一段满足条件的最大长度的区间。然后在右指针变化过程中,一旦发现这段区
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
P1001 A+B Problem (良心题解)
这题不是线段树的模板题吗,其实可以这样理解QAQ: A+B=(A/gcd(A,B)+B/gcd(A,b))*gcd(A,B) (gcd指最大公约数) 所以100+的线段树就出现了 #include&amp;amp;lt;iostream&amp;amp;gt; #include&amp;amp;lt;cstdio&amp;amp;gt; #include&amp;amp;lt;cmath&amp;amp;gt;
省选的easy线段树题目 题解 JSOI 2008 最大数
线段树水过 没有什么问题是线段树解决不了的!!!包括a+b problem 。 ---------lmrttx 题目传送门:题目 分析:查询操作可以看成在 m−l+1m-l+1m−l+1 到 mmm 这一段区间中取最值,所以,线段树就可以使用了。插入操作就直接暴力线段树操作就行了。 CODE by lmrttx: #include<bits/stdc++.h> #define ll long long #define inf -10000000000
C/C++A + B题解
A + B 众所周知,A + B是一道世界难题,俗话说: 好钢要用在刀刃上,A + B要放在线段树上: CODE: #include<iostream> #include<cstdio> #include<algorithm> #define ll long long #define INF 0x3f3f3f3f using namespace std; struct node { ll l; ll r; ll sum; }st[20]; void bui
BZOJ 3218 a + b Problem 可持久化线段树+最小割
题目大意:。。。自己看 从源点出发,分别向汇点连两条流量为a和b的边,跑最大流即是a+b。 代码: #include #include #include #include #define M 10 #define S 1 #define T 2 #define INF 0x3f3f3f3f using namespace std; struct abcd{ int to,f,nex
[kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】
题目链接:点击打开链接 A - 敌兵布阵 HDU - 1166 单点更新及区间求和。 因为更新时是在原有的基础上进行加减,所以用a数组来记录其数值。 AC代码: #include #include #include #include #include using namespace std; const int INF =
CodeForces - 1252K Addition Robot(线段树维护矩阵)
题目链接:点击查看 题目大意:给出一个只由 A 和 B 组成的字符串 s ,需要完成 m 次操作,每次操作分为两种类型: 1 l r :将 [ l , r ] 内的字符串 A 变成 B,B 变成 A 2 l r a b:从左到右扫一遍字符串 s 的 [ l , r ] ,并求出最后的 a 和 b 如果 s[ i ] == ' B ' : b = a + b 如果 s[ i ] == ' A ' : a = a + b 题目分析:维护一段连续的 a 和 b 的变化,通过观察后不难发现其实可以用
【BZOJ-3218】a+b Problem 最小割 + 可持久化线段树
3218: a + b Problem Time Limit:20 SecMemory Limit:40 MBSubmit:1320Solved:498[Submit][Status][Discuss] Description Input Output Sample Input Sample Output HINT Source...
UOJ#77. A+B Problem [可持久化线段树优化建边 最小割]
UOJ#77. A+B Problem 题意:自己看 接触过线段树优化建图后思路不难想,细节要处理好 乱建图无果后想到最小割 白色和黑色只能选一个,割掉一个就行了 之前选白色必须额外割掉一个p[i],i向i+n连p[i],然后i+n向之前点连INF就行了 向一段区间连边?果断线段树优化 等等,还要满足\(l_i\le a_j \le r_i\),权值建线段树,然后可持久化! 有一点细节没考虑...
60



被折叠的 条评论
为什么被折叠?



