线段树A+B

UOJ#77. A+B Problem(线段树+最小割) 传送门 题解: 此类黑白染色的问题,通常可以用最小割解决。 先把所有贡献加入ans" role="presentation">ansansans。 对于一个点,建边: S→wi⁡i→bi⁡des" role="presentation">S→wii→bidesS→wi⁡i→bi⁡desS\mathop{\rightarrow}\li 阅读详情
#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;
}

【线段树】【树】【网络流】[UOJ#77]A+B Problem 题目描述 感谢geng给我了正确的数据范围题目解析首先我们可以发现如果我们不考虑有奇怪的格子,那么显然我们有ans=∑黑色的格子bi+∑白色的格子wians=\sum_{黑色的格子}b_i+\sum_{白色的格子}w_i那么ans=∑i=1nwi+bi−∑i=1nmin{wi,bi}ans=\sum_{i=1}^nw_i+b_i-\sum_{i=1}^n\min\{w_i, b_i\}那么我们 阅读详情

相关推荐

嵌入式SPI总线抽象设计:跨平台驱动与分层解耦实践

SPI(串行外设接口)是嵌入式系统中应用最广泛的同步串行通信协议,其核心价值在于高吞吐、低开销与硬件简洁性。其工作原理基于主从架构、全双工/半双工时序及片选(CS)控制,依赖CPOL/CPHA组合定义四种标准模式。在工程实践中,SPI常面临硬件资源受限、多外设共用总线、MCU平台迁移等挑战,导致驱动复用率低、维护成本高。通过结构体+函数指针实现的分层抽象——将物理总线、协议适配与设备驱动解耦,可显著提升代码可移植性与扩展性。该方法天然支持硬件SPI与GPIO模拟SPI双模式切换,并已在STM32等主流MCU

weixin_42601134的博客 60

【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...

aodanchui1057的博客 179

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

A+B线段树版

【代码】A+B线段树版。

zth413021的博客 203

ESP32S3新手避坑:用IDF5.0驱动GT911触摸屏,我踩过的三个雷都给你填平了

本文详细解析了在ESP32S3开发板上使用IDF5.0驱动GT911触摸屏时常见的三大问题:软重启失效、状态寄存器读取异常和初始化参数差异。通过逻辑分析和硬件调试工具,提供了针对性的解决方案和优化建议,帮助开发者高效完成触摸屏驱动开发。

weixin_42567497的博客 296

葵花(Himawari)8/9卫星数据处理

李国春 葵花8(含葵花9,下同)是静止气象卫星,数据范围是星下点为140°E赤道上空的大圆盘。空间分辨率有500m、1km和2km三种。虽然其空间分辨率不高,但是有极高的时间分辨率,观测数据刷新仅10分钟。这对一些生态、农业和大范围自然灾害的动态检测具有非常高的应用价值。本文介绍如何使用RSD处理葵花8数据。

副组长的博客 1万+

Codeforces Round 979 (Div. 2)(A,B,C,D)(思维,线段树)

因此我们可以使用线段树来维护区间最大值。),我们统计其左边的最大值是否为。,则为YES,否则为NO。就为YES,否则为NO。

weixin_74754298的博客 999

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 295

牛客练习赛130(A,B,C)(二进制,思维,前缀和,线段树)

的区间和,每以此询问即是一次单点修改和区间查询。因此,我们可以用两棵线段树分别维护。我们可以倒着进行调整,如果当前的。进行二进制拆位,如果同时出现。时,必然无解,否则一定有解。,则说明骑士的血多了。相等,一步都不需要。

weixin_74754298的博客 1234

Spring Authorization Server自定义密码模式:突破标准OAuth2限制,实现MFA与复杂业务集成

OAuth 2.0授权框架是构建现代应用安全体系的基石,其密码模式(Resource Owner Password Credentials Grant)提供了一种直接的资源所有者凭证交换令牌的机制。该模式的核心原理是客户端收集用户密码并直接向授权服务器请求访问令牌,适用于受信任的客户端场景。在技术价值上,它简化了某些传统应用的OAuth集成流程。然而,标准实现往往难以满足复杂的现实业务需求,例如需要集成多因素认证(MFA)、对接外部LDAP目录服务或执行自定义密码加密校验等场景。Spring Authori

weixin_34302561的博客 437

Modelsim:LPDDR5仿真(含美光仿真模型官方sv&vcs代码)

虽然,三星在设计跟量产上,早于其他家存储产商,但是镁光后来居上了,是业界首家支持全速 LPDDR5 的供应商,并且开发者在做开发的时候,也是用美光颗粒比较多,所以这里就先以美光的仿真模型为主进行仿真。 本工程为美光官方工程,支持Modelsim、VCS、ncverilog三种仿真器仿真。模型破解过,为完整system-verilog代码。

千歌叹尽执夏的博客 1280

Codeforces Round 975 (Div. 2)(A,B,C,D线段树解法,E)

因此我们可以用线段树动态维护区间最大值,区间查询操作为加减,枚举每一个。我们考虑预处理出每一个区间对答案产生的贡献。的时候,只需要对原先的卡牌进行分组即可。分别求出奇数位和偶数位的最大值,之后进行比较即可。因此,我们可以预处理出前缀最小值和后缀最小值。这个时间节段的每一个节点已经被征服了多少个点。个卡牌分为一组,对于我们最后一组的卡牌,会有。表示卡牌个数最多的那个卡牌类型的数量。的区间,每一个点都减去对应的时间。个,如果我们想要将其补全,需要再添加。的时候,我们依旧假设可以将每。中间的数对答案产生的贡献。

weixin_74754298的博客 2811

33、嵌入式系统中的内存操作与实时操作系统

本博客详细探讨了嵌入式系统中的内存操作和实时操作系统(RTOS)的基本原理及应用。内容涵盖C、C++和MicroPython三种语言下的SDRAM读写示例,并结合机器人真空吸尘器的实际应用说明内存的使用场景。此外,还介绍了RTOS的核心概念、组件及其工作机制,包括任务、事件、互斥锁、信号量、队列等,并以FreeRTOS和Mbed OS为例展示了RTOS的配置与使用方法。最后,通过常见问题和实践项目加深对嵌入式系统开发的理解。

zz67890的博客 144

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

hddddh的博客 551

精雕软件(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...

ccsu_deer 586

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

codeforces 602B Approximating a Constant Range(线段树+尺取法)

题目链接: http://codeforces.com/problemset/problem/602/B 题目大意: 给一段长为N的序列,现在要找一段区间,要求区间里的最大值和最小值之差不超过1,问最大的区间长度是多少。 思路: 在众多的方法前,我选择了最省力又暴力的线段树= = 利用尺取法,定义左右两个指针,维护一段满足条件的最大长度的区间。然后在右指针变化过程中,一旦发现这段区

hahahaha 674

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;amp;lt;iostream&amp;amp;amp;gt; #include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt; #include&amp;amp;amp;lt;cmath&amp;amp;amp;gt;

sxy__orz的博客 651

省选的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

SB_zero_mark的博客 221

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

weixin_45540506的博客 562

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

世界 3919

[kuangbin带你飞]专题七 线段树 【A、B、C、E、G、H】

题目链接:点击打开链接 A - 敌兵布阵 HDU - 1166                     单点更新及区间求和。 因为更新时是在原有的基础上进行加减,所以用a数组来记录其数值。 AC代码: #include #include #include #include #include using namespace std; const int INF =

咸鱼の小窝 717

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 的变化,通过观察后不难发现其实可以用

Falcon的博客 586

【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...

weixin_30933531的博客 79

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\),权值建线段树,然后可持久化! 有一点细节没考虑...

weixin_30505043的博客 107
上一篇: floyed更正
下一篇: A+B problem (在这个文章里句号不是好东西)
火龙果king
博客等级 码龄5年 89粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值