BZOJ3282 Tree

【DIY】使用STM32及PID算法实现一个磁悬浮玩具 今天教大家来做一个磁悬浮玩具。 阅读详情

Description

  给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。
  0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是连通的。
  1:后接两个整数(x,y),代表连接x到y,若x到y已经连通则无需连接。
  2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。
  3:后接两个整数(x,y),代表将点x上的权值变成y。

Input

第1行两个整数,分别为N和M,代表点数和操作数。
第2行到第N+1行,每行一个整数,整数在[1,10^9]内,代表每个点的权值。
第N+2行到第N+M+1行,每行三个整数,分别代表操作类型和操作所需的量。

Output

对于每一个0号操作,你须输出X到Y的路径上点权的Xor和。

Sample Input

3 3

1

2

3

1 1 2

0 1 2

0 1 1

Sample Output

3

1

Hint

1<=N,M<=300000

简单的维护点权信息,裸题。(LCT取链操作比较重要)

#include<bits/stdc++.h>
using namespace std;
#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)
const int N = 3e5+10;
int n,m;
struct Splay{
	bool rev[N];
	int p[N],ch[N][2];
	int vl[N],sum[N];
	#define Ls(v) ch[v][0]
	#define rs(v) ch[v][1]
	inline bool is_root(int x){
		return (Ls(p[x])^x)&&(rs(p[x])^x);
	}
	inline void maintain(int x){
		sum[x]=sum[Ls(x)]^vl[x]^sum[rs(x)];
	}
	inline void pushdown(int x){
		if(rev[x]){
			rev[Ls(x)]^=1,rev[rs(x)]^=1;
			swap(Ls(x),rs(x));
			rev[x]=0;
		}
	}
	inline void rot(int x){
		int f=p[x],gf=p[f],type=rs(f)==x,son=ch[x][!type];
		if(!is_root(f))ch[gf][rs(gf)==f]=x;p[x]=gf;
		ch[p[son]=f][type]=son,maintain(f);
		ch[p[f]=x][!type]=f,maintain(x);
	}
	int top,stk[N];
	inline void splay(int x){
		stk[++top]=x;
		if(!is_root(x))for(int i=x;!is_root(i);i=p[i])stk[++top]=p[i];
		while(top)pushdown(stk[top--]);
		while(!is_root(x)){
			if(is_root(p[x]))return rot(x),void();
			if((rs(p[p[x]])==p[x])==(rs(p[x])==x))rot(p[x]);
			rot(x);
		}
	}
	inline int findrt(int x){
		while(Ls(x))x=Ls(x);
		return x;
	}
};
struct LCT{
	Splay sp;
	inline void access(int x){
		for(int lastx=0;x;lastx=x,x=sp.p[x])
			sp.splay(x),sp.rs(x)=lastx,sp.maintain(x);
	}
	inline void make_root(int x){
		access(x),sp.splay(x),sp.rev[x]^=1;
	}
	inline void link(int x,int y){
		make_root(x),sp.p[x]=y;
	}
	inline void cut(int x,int y){
		make_root(x),access(y),sp.splay(y);
		sp.p[x]=sp.Ls(y)=0;
	}
	inline void split(int x,int y){
		make_root(x),access(y),sp.splay(y);
	}
	inline bool connect(int x,int y){
		int rtx,rty;
		access(x),sp.splay(x),rtx=sp.findrt(x);
		access(y),sp.splay(y),rty=sp.findrt(y);
		return rtx==rty;
	}
}lct;
inline void init(){
	scanf("%d%d",&n,&m);
	Inc(i,1,n)scanf("%d",&lct.sp.vl[i]);
}
inline void solv(){
	while(m--){
		int op,x,y;scanf("%d%d%d",&op,&x,&y);
		switch(op){
			case 0:lct.split(x,y);cout<<lct.sp.sum[y]<<"\n";break;
			case 1:if(!lct.connect(x,y))lct.link(x,y);break;
			case 2:if(lct.connect(x,y))lct.cut(x,y);break;
			case 3:lct.sp.vl[x]=y,lct.sp.splay(x),lct.sp.maintain(x);break;
		}
	}
}
int main(){
	init();
	solv();
	return 0;
}

 

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用 本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。 阅读详情

相关推荐

从零开始:Vivado中自定义串口通信IP核的完整实现

本文详细介绍了在Vivado中从零开始实现自定义串口通信IP核的完整流程,包括Verilog核心代码编写、仿真验证、IP核封装与参数化配置技巧。通过AXI-Lite总线实现动态配置,提升FPGA开发效率,适用于各种嵌入式系统通信需求。

weixin_29274969的博客 325

【bzoj3282】Tree LCT

Description给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。 3:后接两个整数(x,y

DQS的树洞 1013

在Ubuntu 22.04上从零搭建TrinityCore 3.3.5服务器:一份保姆级避坑指南

本文详细介绍了在Ubuntu 22.04系统上从零搭建TrinityCore 3.3.5服务器的完整流程,包括环境准备、源码编译、数据库配置、资源文件处理及性能调优等关键步骤。特别针对国内开发者和低配置用户优化,提供保姆级避坑指南,帮助用户高效搭建魔兽世界经典旧世版本私服。

weixin_33393017的博客 304

BZOJ 3282: Tree

3282: Tree Time Limit:30 SecMemory Limit:512 MBSubmit:1714Solved:765[Submit][Status][Discuss] Description 给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的...

weixin_30938149的博客 125

AArch64 ARM64 寄存器介绍

除了上述通用寄存器,还有FPSR(浮点状态寄存器)和 FPCR(浮点控制寄存器)等。X29寄存器和X30寄存器在函数调用和堆栈帧的管理中扮演着关键角色。AArch64架构提供了31个通用寄存器,每个寄存器都可以用作64位X寄存器(X0~X30)或32位W寄存器(W0~W30)。使用X寄存器将导致64位的计算,使用W寄存器将导致32位的计算。EL0、EL1、EL2和EL3是AArch64架构中定义的四个特权级别(Exception Levels),用于支持不同的执行环境和特权级别。

lml435035844的博客 1万+

从无人机到机械臂:深入聊聊LQR和LQG在实际项目里的那些‘坑’与最佳实践

本文深入探讨了LQR和LQG在无人机和机械臂等实际项目中的应用挑战与最佳实践。从系统建模的妥协艺术到调参的系统化方法,再到离散化的细节处理,文章分享了工程实践中的宝贵经验。特别强调了如何应对传感器噪声、未建模动态等现实问题,并提供了实用的调试工具和诊断流程,帮助工程师避免常见陷阱,提升控制系统的稳定性和性能。

weixin_28683391的博客 384

bzoj3282: Tree

#include<cstdio> #include<cstring> #include<algorithm> #define ls c[x][0] #define rs c[x][1] using namespace std; const int maxn=300010; int n,m; struct LCT{ int c[maxn][2]...

weixin_30325793的博客 143

ArcGIS Pro 3.4 二次开发 - 知识图谱

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作知识图谱的方法。主要包含两大功能模块:1) 知识图谱数据存储操作,包括建立连接、获取图层、检索要素类与表定义、ID转换等;2) 知识图谱数据模型管理,如获取数据模型属性、标识符信息等。代码示例详细展示了如何使用C#通过QueuedTask异步任务与知识图谱服务交互,包括异常处理、数据转换等常见操作场景。所有示例均采用using语句确保资源释放,并遵循ArcGIS Pro SDK的最佳实践。

Winemonk 763

bzoj3282(Tree lct模板)

题目 虽然代码ac了。由于不太清楚原理。。模模糊糊的。。找了网上好几个代码对拍一下每份之间都不一样。。emmm。。第一道lct很难受,不知道以后写题的过程需不需要了解这么清原理。 #include<cstdio> #include<iostream> #include<cstring> #include<map> #define m(a,b) me...

qq_42576687的博客 208

机加工机器人系列编程:Fanuc M-710iC_(2).FanucM-710iC机器人的硬件配置

Fanuc M-710iC 机器人是一种广泛应用在汽车零部件制造行业中的工业机器人。它的本体结构设计紧凑、稳定,适用于多种加工任务。了解机器人的本体结构是进行编程和维护的基础。

zhubeibei168的博客 991

目标检测YOLO实战应用案例100讲-【目标检测】缺陷检测(二)

在工业生产中总是经常遇到裂痕、划痕等产品的表面缺陷问题,机器视觉行业对于表面检测相比前几年已经有很大的突破,对于产品表面的划伤、污迹等检测已经不再是难点。在金属、玻璃、手机屏幕、液晶板等行业表面检测上应用广泛。但由于该类缺陷形状不规则、深浅对比度低,而且往往会被产品表面的自然纹理或图案所干扰。因此,表面划痕缺陷检测对于正确打光、相机分辨率、被检测部件与工业相机的相对位置、复杂的机器视觉算法等要求非常高。

qq_36130719的博客 728

【BZOJ】【3282】Tree

LCT   喜闻乐见的Link-Cut-Tree……   srO zyf   http://www.cnblogs.com/zyfzyf/p/4149109.html   目测我是第222个?………………不要在意这些细节……      和以前写的splay还是有些区别呢……   比如splay中Push_down的写法……还有rotate的新姿势~   算法看看论文什么的……很好懂...

weixin_30414155的博客 120

0 基础学前端:100 天拿 offer 实战课(第 16 天)—— JS 数组高级方法:数据处理效率翻倍,代码更简洁

方法名核心作用回调函数返回值返回结果适用场景map数据转换转换后的新元素新数组(长度与原数组一致)格式转换、新增字段、生成 DOM 字符串filter数据筛选true(保留)/false(过滤)新数组(符合条件的元素)筛选符合条件的元素(如未完成计划、今天的评论)reduce数据汇总新的累加值任意类型(数字、对象等)求和、计数、分组、多数据汇总find查找元素true(匹配)/false(不匹配)第一个匹配的元素 /undefined。

苏打水.X的博客 132

BZOJ3282: Tree

【传送门:BZOJ3282】 简要题意:   给出n个点以及它们的权值,有m个操作,4种操作:   1.询问从x到y的路径上的xor和   2.连接x和y,如果本来就联通则不作操作   3.使x和y不连通,如果本来就不连通则不作操作   4.修改第x个点的权值,改为c 题解:   LCT,只要在每个点保存它子树的异或和就行了 参考代码: #include<...

weixin_30478619的博客 75

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

BZOJ3282 - Tree

Portal to BZOJ3282,Portal to 洛谷P3690 Description 给定\(n(n\leq3\times10^5)\)个点以及每个点的权值,要你处理接下来的\(m(m\leq3\times10^5)\)个操作。操作有4种: 询问从\(u\)到\(v\)的路径上的点的权值的xor和。保证\(u\)到\(v\)是联通的。 连接边\((u,v)\),若\(u\)...

ayw1069的博客 168

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[bzoj3282]Tree_LCT

Tree bzoj-3282 题目大意:给你n个点m个操作。更改单点权值,加边,删边;查询路径异或和。 注释:$1\le n,m\le 10^5$ 想法:看到了加边删边,果断想到LCT维护。至于路径异或和,我们只需要维护每个点对应splay的子树异或和,然后查询的时候直接access+splay,makeroot之后就行了。 最后,附上丑陋的代码... ... #inclu...

dianan0938的博客 120

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

[BZOJ3282][tree][LCT]

[BZOJ3282][tree][LCT]题目大意:给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在

羽裳 369

BZOJ3282Tree

3282: Tree Time Limit: 30 Sec Memory Limit: 512 MB Submit: 1265 Solved: 552 Description 给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个

DCrusher's blog 435

【bzoj3282】Tree

*题目描述: 给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。 3:后接两个整数(x,y),代

吃土烧年ct的博客 308

【BZOJ3282】Tree

Description给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。 1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。 2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。 3:后接两个整数(x,y

CreationAugust is 14 years old forever 847

bzoj 3282: Tree

http://www.lydsy.com/JudgeOnline/problem.php?id=3282 大概又是一道lct的裸题 #include<cstdio> #include<algorithm> const int maxn = 320007; inline int read() { int x=0,f=1;char c=getc...

agtvo48266的专栏 104

[BZOJ 3282] Tree

题目描述: 4个操作 0 查询 u-v 的路径异或值 1 链接 u-v 2 断开 u-v 3 把 u 的权值 改为 V 题目分析: 都是LCT的最基本操作 题目链接: BZOJ 3282 Ac 代码: #include &lt;cstdio&gt; #include &lt;iostream&gt; #define il inline const int m...

HT008的Blog 214
上一篇: BZOJ2157 旅游
下一篇: NOI2014 魔法森林
DancingZ
博客等级 码龄9年 10粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值