[BZOJ]2049 [洞穴勘测] LCT[裸]

TLE9869电机控制开发实战:从环境搭建到开环启动避坑指南 电机控制是嵌入式系统与电力电子技术结合的核心领域,其核心原理在于通过微控制器(MCU)产生精确的脉宽调制(PWM)信号,驱动功率开关器件,从而控制电机的转速、转矩与位置。这项技术的核心价值在于实现了高效、精准的能量转换与运动控制,广泛应用于工业自动化、汽车电子、消费电子和机器人等领域。在具体实现上,开发流程通常始于芯片选型与开发环境搭建,特别是对于集成度高的专用SoC,如英飞凌的TLE9869。这类芯片集成了**CCU6(捕获比较单元)** 等电机控制专用外设和**ADC(模数转换器)**,能高效生成带死区 阅读详情

2049: [Sdoi2008]Cave 洞穴勘测

Time Limit: 10 Sec   Memory Limit: 259 MB
Submit: 9011   Solved: 4301
[ Submit][ Status][ Discuss]

Description

辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太稳定,时常因为外界影响而发生改变,比如,根据有关仪器的监测结果,123号洞穴和127号洞穴之间有时会出现一条通道,有时这条通道又会因为某种稀奇古怪的原因被毁。辉辉有一台监测仪器可以实时将通道的每一次改变状况在辉辉手边的终端机上显示:如果监测到洞穴u和洞穴v之间出现了一条通道,终端机上会显示一条指令 Connect u v 如果监测到洞穴u和洞穴v之间的通道被毁,终端机上会显示一条指令 Destroy u v 经过长期的艰苦卓绝的手工推算,辉辉发现一个奇怪的现象:无论通道怎么改变,任意时刻任意两个洞穴之间至多只有一条路径。因而,辉辉坚信这是由于某种本质规律的支配导致的。因而,辉辉更加夜以继日地坚守在终端机之前,试图通过通道的改变情况来研究这条本质规律。然而,终于有一天,辉辉在堆积成山的演算纸中崩溃了……他把终端机往地面一砸(终端机也足够坚固无法破坏),转而求助于你,说道:“你老兄把这程序写写吧”。辉辉希望能随时通过终端机发出指令 Query u v,向监测仪询问此时洞穴u和洞穴v是否连通。现在你要为他编写程序回答每一次询问。已知在第一条指令显示之前,JSZX洞穴群中没有任何通道存在。

Input

第一行为两个正整数n和m,分别表示洞穴的个数和终端机上出现过的指令的个数。以下m行,依次表示终端机上出现的各条指令。每行开头是一个表示指令种类的字符串s("Connect”、”Destroy”或者”Query”,区分大小写),之后有两个整数u和v (1≤u, v≤n且u≠v) 分别表示两个洞穴的编号。

Output

对每个Query指令,输出洞穴u和洞穴v是否互相连通:是输出”Yes”,否则输出”No”。(不含双引号)

Sample Input

样例输入1 cave.in
200 5
Query 123 127
Connect 123 127
Query 123 127
Destroy 127 123
Query 123 127
样例输入2 cave.in

3 5
Connect 1 2
Connect 3 1
Query 2 3
Destroy 1 3
Query 2 3



Sample Output

样例输出1 cave.out
No
Yes
No


样例输出2 cave.out

Yes
No

HINT

数据说明 10%的数据满足n≤1000, m≤20000 20%的数据满足n≤2000, m≤40000 30%的数据满足n≤3000, m≤60000 40%的数据满足n≤4000, m≤80000 50%的数据满足n≤5000, m≤100000 60%的数据满足n≤6000, m≤120000 70%的数据满足n≤7000, m≤140000 80%的数据满足n≤8000, m≤160000 90%的数据满足n≤9000, m≤180000 100%的数据满足n≤10000, m≤200000 保证所有Destroy指令将摧毁的是一条存在的通道本题输入、输出规模比较大,建议c\c++选手使用scanf和printf进行I\O操作以免超时

Source

[ Submit][ Status][ Discuss]


几句闲话

           终于学LCT了,早就听说LCT的强大功能...不过话说因为splay自带巨大常数,LCT也很慢啊.不过功能也很强就是咯...感觉splay是个好东西.

题解

           这道题确实是裸得不能再裸的LCT了,你要是懂了LCT的话,你就会知道这道题是大水题,这里暂时没有写LCT的博客,因为还不是很熟练,不敢乱说瞎bb啥的...但是日后一定会填这个坑,比如说以【史上最详细讲解LCT】或【浅谈LCT】或【论LCT】或什么感觉好像很厉害好像国家集训队似的水平的标题出世...回归正题,这道题连边砍边判连通性,你总不能用并查集吧...看到link cut就上link cut tree LCT.初学模板参照hzwer(%%%%%%),给出一份更精简的代码.(不算读优60行左右).
   代码:
     
#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn=10005;
char ss[10];
bool rev[maxn];
int fa[maxn],c[maxn][2],s[maxn],n,m;
inline const int read(){
    register int f=1,x=0;
    register char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
    return f*x;
} 
inline bool isroot(int x){
    return c[fa[x]][0]!=x&&c[fa[x]][1]!=x;
}
inline void pushdown(int x){
    int l=c[x][0],r=c[x][1];
    if(rev[x]){
       rev[x]^=1,rev[l]^=1,rev[r]^=1;
       swap(c[x][0],c[x][1]);
	}
}
inline void rotate(int x){
    int y=fa[x],z=fa[y];
    int l=(c[y][0]!=x),r=l^1;
    if(!isroot(y)){
       if(c[z][0]==y) c[z][0]=x;
       else c[z][1]=x;
	}
	fa[x]=z,fa[y]=x,fa[c[x][r]]=y;
	c[y][l]=c[x][r],c[x][r]=y;
}
inline void splay(int x){
	int top=0;s[++top]=x;
    for(int i=x;!isroot(i);i=fa[i]) s[++top]=fa[i];//
    for(int i=top;i;i--) pushdown(s[i]);
    while(!isroot(x)){
        int y=fa[x],z=fa[y];
        if(!isroot(y)){
           if(c[y][0]==x^c[z][0]==y) rotate(x);
           else rotate(y);
		}
		rotate(x);
	}
}
inline void access(int x){
    for(int t=0;x;x=fa[x]) splay(x),c[x][1]=t,t=x;
}
inline void make_root(int x){
    access(x),splay(x),rev[x]^=1;
}
inline void cut(int x,int y){
    make_root(x),access(y),splay(y),c[y][0]=fa[x]=0;
}
inline void link(int x,int y){
    make_root(x),fa[x]=y,splay(x);
}
inline int find(int x){
    access(x),splay(x);
    int y=x;
    while(c[y][0]) y=c[y][0];
    return y;
}
int main(){
    n=read(),m=read();
    while(m--){
      scanf("%s",ss);
      int x=read(),y=read();
	  if(ss[0]=='C') link(x,y);
	  if(ss[0]=='D') cut(x,y);
	  if(ss[0]=='Q') puts(find(x)==find(y)?"Yes":"No");
	}
	return 0;
}

微信聊天记录丢失原因与恢复方案详解 SQLite数据库作为移动应用常见的本地存储方案,其加密机制和存储结构直接影响数据安全性。以微信为例,聊天记录存储在EnMicroMsg.db等SQLite文件中,采用AES加密保护。当手机清理工具误删这些文件时,会导致特定时间段记录丢失。理解数据恢复原理需要掌握文件系统删除机制和闪存特性,其中关键点包括TRIM指令的影响和数据块覆盖风险。通过专业工具如DiskDigger或iMyFone D-Back,配合ADB调试和SQLite数据重组技术,可在黄金时间窗口内恢复记录。日常维护建议结合自动化备份方案和存 阅读详情

相关推荐

杭电oj2023题题目详解(Java版)

杭电oj2023题详解

m0_51065958的博客 978

[BZOJ2049] [SDOI2008] Cave 洞穴勘测 (LCT)

Description   辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太...

weixin_30873847的博客 188

DIY天文摄影:如何用NMP溶剂安全去除佳能CMOS传感器的拜耳滤镜(附详细步骤)

本文为天文摄影爱好者提供了一份详尽的DIY指南,介绍如何使用NMP溶剂安全去除佳能CMOS传感器的拜耳滤镜,将其改造为高灵敏度单色相机。文章深入剖析了NMP溶剂的作用原理与关键风险,并系统性地拆解了从材料准备、分步操作到后期验证的完整实践流程,旨在帮助具备动手能力的爱好者实现深空天体摄影的进阶目标。

w3x4y的博客 308

bzoj-2049 Cave 洞穴勘测

题意: 给出n个点和m次操作,操作有三种; 1.连接两个点; 2.删除两个点之间的连接; 3.查询两个点是否连通; 保证任何时刻图为一个森林; n 题解: LCT模板题,看起来LCT是个好东西; LCT是一个用数据结构来维护一个支持动态加边删边的森林; 内部实现是用多个Splay来维护树上的重链,用Splay间的边维护树上的轻边; 这里的定义与树剖不同了,重边

140142 922

FAST-LIO2实战:如何在无人机上部署并实现厘米级定位(附ROS配置全流程)

本文详细介绍了如何在无人机上部署FAST-LIO2激光雷达惯性里程计系统,以实现厘米级精确定位。内容涵盖从硬件选型(如激光雷达与机载计算机)、软件环境配置(ROS Noetic)、传感器标定,到FAST-LIO2参数调优、与PX4飞控集成以及实际飞行测试的全流程。重点解决了实时定位中的外参标定、数据同步等关键问题,为无人机在无GPS或复杂光照环境下提供稳定可靠的定位解决方案。

weixin_29062865的博客 250

【大模型】大模型知识蒸馏 综述解读(Knowledge Distillation of Large Language Models)

知识蒸馏的(论文)方法总结。归纳了通过数据(如指令、对话、多模态)和训练方法(SFT、RL、数据增强),将复杂技能(如对齐、工具使用、多模态)蒸馏到开源模型的核心框架,附典型模型示例(如Alpaca、LLaVA)。

songxia928_928的博客 4335

【图论】[SDOI2008]Cave 洞穴勘测

辉辉热衷于洞穴勘测。 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径...

ars4me 587

【入坑存内计算一键指南】存内计算运算原理:算法优化、存储介质探究

本文探讨了存内计算及其面向的架构优化,尤其侧重于图算法优化和存内计算存储介质。文章介绍了存内计算的概念和意义,着重强调了存内计算解决了内存墙问题,提高了计算效率。针对图算法的优化,提出了基于位运算的创新方法,重塑了单源最短路径算法,并介绍了基于局部重叠度的链路预测算法优化设计。接着,文章详细讨论了存内计算存储介质,特别是非易失性存储器,比较了不同类型存储器的性能,并重点介绍了基于ReRAM的存内计算技术,包括其物理模型和交叉阵列结构。

一键难忘的博客 7066

动态树 bzoj2049

对动态树基本操作的详细讲解以及例题代码

wbysr 1759

LED灯闪烁实验:代码集成

LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。

u013288925的博客 369

Flink CDC 中 StartupOptions 模式详解

Flink CDC 的 StartupOptions 模式用于指定作业启动时从源数据读取数据的起始位置,不同的模式适用于不同的业务场景,可满足多样化的数据处理需求,主要有 Initial 模式、Earliest 模式、Latest 模式、SpecificOffset 模式和 Timestamp 模式。

RodJohnsonDoctor的专栏 849

【BZOJ2049】【SDOI2008】Cave 洞穴勘测 LCT裸题 模版题 数组版

数组,至少目前我只写数组,不写指针。 LCT这种东西我不打算讲或者什么乱七八糟的,反正这一篇是自用。 同样,看这篇博客的人可以先去别的地方学LCT,然后来我这扒代码。 代码: #include #include #include #include #define ls son[x][0] #define rs son[x][1] #define is(x) (x==

辗转山河弋流歌 1548

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

BZOJ 2049: [Sdoi2008]Cave 洞穴勘测(LCT裸题)

题目链接:BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 题意: 三个操作. 1 链接x y 2 断开x y 3 询问x y是否连通 题解: LCT裸题 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 #define mst(a,b) mems...

weixin_30500105的博客 114

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

bzoj2049: [Sdoi2008]Cave 洞穴勘测 lct裸题

题意:三种操作一种摧毁一条边,一种链接一条边,一种查询两个点是否联通 题解:lct的link和cut即可 /************************************************************** Problem: 2049 User: walfy Language: C++ Result: Accepted Time:1...

weixin_30686845的博客 121

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LCT裸题-[BZOJ2049][Sdoi2008]Cave 洞穴勘测

我还是太naive了,splay循环的时候把更新f和g写到外面赋初值去了,然后就果不其然的T了。 PS:我曾一度迷信科学,直到长者出现。 两组样例,第一组是没问题的,第二组的空格是假的!是假的~假的~的。 3 5 Connect 1 2 Connect 3 1 Query 2 3 Destroy 1 3 Query 2 33 5 Connect 1 2 Connect 3 1

struct_liao的博客 264

[bzoj2049][SDOI2008]Cave 洞穴勘测

2049: [Sdoi2008]Cave 洞穴勘测Time Limit: 10 Sec Memory Limit: 259 MB Submit: 4803 Solved: 2137 [Submit][Status][Discuss] Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)

Vampire 1787

bzoj 2049 洞穴勘测 lct

2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 11475  Solved: 5683 [Submit][Status][Discuss] Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为...

KIDGIN7439的专栏 275

【BZOJ2049】 [Sdoi2008]Cave 洞穴勘测

BZOJ2049 [Sdoi2008]Cave 洞穴勘测 Solution 看到这种动态连边和动态删边的不就想到LCT? 直接上就好了. 好像可以非路径压缩并查集搞,不清楚了. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include...

araw94333的博客 184

【LCT】BZOJ 2049:[Sdoi2008]Cave洞穴勘测

BZOJ 1146 network网络管理Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十

puck_just_me的blog 566

BZOJ2049 SDOI2008 Cave 洞穴勘测 【LCT】

BZOJ2049 Sdoi2008 Cave 洞穴勘测 Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两...

Dream_maker的博客 307

lct (bzoj 2049 Cave 洞穴勘测)

bzoj 2049 Cave 洞穴勘测 题意: 有n个点,一开始都是彼此分开的。给m个操作,操作有三种类型: 1. 加边; 2. 删边; 3. 求在某状态下两点之间的联通状态。 限制: n 思路: lct /*bzoj 2049 Cave 洞穴勘测 题意: 有n个点,一开始都是彼此分开的。给m个操作,操作有三种类型: 1. 加边; 2. 删边;

whai的专栏 818

bzoj 2049 [Sdoi2008]Cave 洞穴勘测

2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 11970 Solved: 5988 [Submit][Status][Discuss] Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n...

青烟绕指柔的博客 352

[BZOJ2049][[Sdoi2008]Cave 洞穴勘测][LCT]

[BZOJ2049][[Sdoi2008]Cave 洞穴勘测][LCT]思路:题目大意就不放了,貌似是一道LCT裸题。。。三个操作分别是linklink,cutcut和findfind。感谢这篇集训队论文:https://wenku.baidu.com/view/75906f160b4e767f5acfcedb以及黄学长的代码:http://hzwer.com/3921.html感觉LCT的复杂度全

羽裳 420

【bzoj2049】【SDOI2008】【洞穴勘测】【lct】

Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太稳定

sunshinezff的专栏 357

[bzoj2049][Sdoi2008]Cave 洞穴勘测_LCT

Cave 洞穴勘测bzoj-2049 Sdoi-2008 题目大意:维护一个数据结构,支持森林中加边,删边,求两点连通性。n个点,m个操作。 注释:$1\le n\le 10^4$,$1\le m\le 2\cdot 10^5$。 想法:刚学了一发LCT,写一道照学长抄一道板子题。话说什么是LCT? 就是一个贼nb的数据结构,支持加边删边后的什么路径和子树信息啥的,这就是LCT...

dianan0938的博客 147

BZOJ 2049 Sdoi2008 Cave 洞穴勘测

2049: [Sdoi2008]Cave 洞穴勘测 Time Limit:10 SecMemory Limit:259 MBSubmit:10366Solved:5041[Submit][Status][Discuss] Description 辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞...

172
上一篇: [BZOJ]4810 由乃的玉米田 莫队+bitset
下一篇: [BZOJ]4237 稻草人 CDQ分治 详细题解
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值