BZOJ 2049 LCT
思路:LCT的基本操作
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 233333
int n,m,xx,yy,rev[N];
char op[11];
struct Tree{int l,r,where,num,fa;}t[N];
void reverse(int k){if(!k)return;rev[k]^=1;swap(t[k].l,t[k].r);}
void pushdown(int k){if(rev[k])reverse(t[k].l),reverse(t[k].r),rev[k]=0;}
void zig(int k){
int f=t[k].fa;pushdown(f),pushdown(k);
if(t[t[f].fa].l==f)t[t[f].fa].l=k;else if(t[t[f].fa].r==f)t[t[f].fa].r=k;
t[k].fa=t[f].fa,t[f].l=t[k].r,t[t[f].l].fa=f,t[k].r=f;t[f].fa=k;}
void zag(int k){
int f=t[k].fa;pushdown(f),pushdown(k);
if(t[t[f].fa].l==f)t[t[f].fa].l=k;else if(t[t[f].fa].r==f)t[t[f].fa].r=k;
t[k].fa=t[f].fa;t[f].r=t[k].l,t[t[f].r].fa=f;t[k].l=f;t[f].fa=k;}
int splay_root(int k){return t[k].fa&&(t[t[k].fa].l==k||t[t[k].fa].r==k);}
void splay(int k){pushdown(k);while(splay_root(k))if(t[t[k].fa].l==k)zig(k);else zag(k);}
int access(int k){int now=0;while(k)splay(k),t[k].r=now,now=k,k=t[k].fa;return now;}
void makeroot(int k){reverse(access(k)),splay(k);}
void link(int k1,int k2){makeroot(k1),t[k1].fa=k2;access(k1);}
void cut(int k1,int k2){makeroot(k1),access(k2),splay(k2),t[k2].l=t[k1].fa=0;}
int findfa(int k){while(t[k].fa)k=t[k].fa;return k;}
int find(int k1,int k2){makeroot(k1);if(findfa(k2)==k1)return 1;return 0;}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%s%d%d",op,&xx,&yy);
if(op[0]=='Q'){
if(find(xx,yy))puts("Yes");
else puts("No");
}
else if(op[0]=='C')link(xx,yy);
else cut(xx,yy);
}
}
BZOJ 2049 LCT的更多相关文章
- BZOJ 2049 & LCT又一模板
题意: 自己看...加边删边问联通... SOL: 就加了一个findroot而已... 然而时间还是惨不忍睹...优化全开也才1700ms...膜seter... Code: /*========= ...
- [BZOJ 2049] [Sdoi2008] Cave 洞穴勘测 【LCT】
题目链接:BZOJ - 2049 题目分析 LCT的基本模型,包括 Link ,Cut 操作和判断两个点是否在同一棵树内. Link(x, y) : Make_Root(x); Splay(x); F ...
- bzoj 2049 [Sdoi2008]Cave 洞穴勘测(LCT)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2049 [题意] 给定森林,可能有连边或断边的操作,回答若干个连通性的询问. [思路] ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘測 LCT
入门级LCT: 仅仅有 Cut Link 2049: [Sdoi2008]Cave 洞穴勘測 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 3073 ...
- bzoj 2049: [Sdoi2008]Cave 洞穴勘测 (LCT)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2049 题面: 2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 1 ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测——LCT
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2049 省选之前来切一道数据结构模板题. 题意 这是一道模板题. N个点,M次操作,每次加边/ ...
- BZOJ 2049 SDOI2008 洞穴勘测 LCT板子
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2049 题意概述:给出N个点,一开始不连通,M次操作,删边加边,保证图是一个森林,询问两点连 ...
- bzoj 2049: [Sdoi]Cave 洞穴探测 (LCT)
第一次写lct (这是一道lct裸题 这次没有可爱(划掉)的同学教我,虽然有模板,但是配合网上的讲解还是看不懂QAQ 然后做了几道题之后总算有些感觉辣 于是决定给自己挖个坑,近期写一个lct详解(不过 ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 LCT
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
随机推荐
- Oracle性能分析1:开启SQL跟踪和获取trace文件
当Oracle查询出现效率问题时,我们往往须要了解问题所在,这样才干针对问题给出解决方式.Oracle提供了SQL运行的trace信息,当中包括了SQL语句的文本信息.一些运行统计,处理过程中的等待, ...
- java中StringBuilder、StringBuffer、String类之间的关系
今天在CSDN的高校俱乐部里看到了"Java基础水平測试(英文)".感觉自己学了java这么久,想看下自己的java水平究竟是个什么样.測试结果就不说了,反正是慘不忍睹. 看了一下 ...
- node15---cookie session
二.Cookie和Session 2.1 Cookie ● HTTP是无状态协议.简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到,这是同一个浏览器在访问同一个网站.每一 ...
- IntelliJ IDEA中JAVA连接MYSQL
1.下载mysql包 2.项目中引入mysql包 3.连接数据库,查询结果 看jdbc数据库连接类 package Facade; import java.sql.*; /** * Created b ...
- linux下挂载ISCSI存储设备
安装 首先要在存储设备上做好RAID,设置好iSCSI 目标方(target). 这里主要说明iSCSI initiator的安装. 不同的操作系统对应各自的iSCSI initiator,以Redh ...
- html单行、多行文本溢出隐藏
欢迎加入前端交流群来py:749539640 单行: div{/* 单行溢出隐藏 */ width: 150px; white-space: nowrap; overflow: hidden; tex ...
- correct ways to define variables in python
http://stackoverflow.com/questions/9056957/correct-way-to-define-class-variables-in-python later say ...
- 整数翻转C++实现 java实现 leetcode系列(七)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: ...
- 关于Tool接口--------hadoop接口:extends Configured implements Tool 和 ToolRunner.run
我们在写Hadoop--map/reduce程序时,遇到使用按文件url来分析文件----------多表连接的DistributedCache方式,看不懂使用extends Configured i ...
- ajax的cache缓存的使用方法
ajax中cache缓存的使用: 问题描述: 在IE.360浏览器上提交表单后,保存后的内容不回显(依然显示空或者之前的内容). 原因: 回显内容是使用ajax的get方式的请求查询数据,ajax的c ...