LCT模版题。。。。

#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cctype>
#include <cmath>
#define rep(i, l, r) for(int i=l; i<=r; i++)
#define clr(x, c) memset(x, c, sizeof(x))
#define travel(x) for(edge *p=fir[x]; p; p=p->n)
#define l(x) c[x][0]
#define r(x) c[x][1]
#define f(x) Father[x]
#define h(x) Head[x]
#define maxn 10009
#define inf 0x7fffffff
using namespace std;
inline int read()
{int x=0, f=1; char ch=getchar();while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();}while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();return x*f;
}
int n, c[maxn][2], Head[maxn], Father[maxn];
bool rev[maxn];inline void pushdown(int x)
{rev[x]^=1, rev[l(x)]^=1, rev[r(x)]^=1;swap(l(l(x)), r(l(x))), swap(l(r(x)), r(r(x)));
}
inline void rotate(int x)
{int y=f(x), z=f(y), l=(c[y][1]==x), r=l^1;if (z) c[z][c[z][1]==y]=x;f(c[x][r])=y, f(y)=x, f(x)=z;c[y][l]=c[x][r]; c[x][r]=y;
}
inline void Splay(int x)
{if (!x) return; if (rev[x]) pushdown(x); int y;while (f(x)) {if (rev[y=f(x)]) pushdown(y), pushdown(x);if (!f(y)) h(x)=h(y), h(y)=0;rotate(x);}
}
inline void Acc(int x)
{int cmp=x, y; Splay(x); f(r(x))=0, h(r(x))=x, r(x)=0;while (h(x)) Splay(y=h(x)), f(r(y))=0, h(r(y))=y, r(y)=x, f(x)=y, h(x)=0, x=y;Splay(cmp);
}
inline void Eve(int x){Acc(x); rev[x]^=1; swap(l(x), r(x));}
inline int Top(int x){Acc(x); int now=x; while (l(now)) now=l(now); return now;}
inline void Build(){rep(i, 1, n) l(i)=r(i)=h(i)=f(i)=0;}
inline void Connect(int x, int y){Eve(x); Eve(y); Splay(y); h(x)=y;}
inline void Destroy(int x, int y){Eve(x); Acc(y); f(x)=l(y)=0;}
inline void Query(int x, int y){if (Top(x)==Top(y)) puts("Yes"); else puts("No");}
int main()
{n=read(); int m=read(); Build();rep(i, 1, m){char ch[5]; scanf("%s", ch); int x=read(), y=read();if (ch[0]=='C') Connect(x, y); else if (ch[0]=='D') Destroy(x, y); else Query(x, y);}return 0;
}

转载于:https://www.cnblogs.com/NanoApe/p/4479770.html

BZOJ-2049 [SDOI2008]洞穴勘测相关推荐

  1. BZOJ 2049: [Sdoi2008]Cave 洞穴勘测

    Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...

  2. [BZOJ2049] [SDOI2008] 洞穴勘测

    题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...

  3. BZOJ 2049: [Sdoi2008]Cave 洞穴勘测——LCT

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2049 省选之前来切一道数据结构模板题. 题意 这是一道模板题. N个点,M次操作,每次加边/ ...

  4. 题解 洛谷P2147/BZOJ2049【[SDOI2008]洞穴勘测】

    Link-Cut-Tree的模板题啊......(听说还可以用其他的方法做,不管了,直接上LCT) 没有要求维护点权,只需要维护点的连通性即可. 就是朴素的LCT,居然还不要pushup. 感觉有些不 ...

  5. 洛谷P2147[SDOI2008]洞穴勘测

    题目 LCT,或者并查集水过. 首先并查集这道题不能路径压缩,因为路径压缩是为了用牺牲一些信息的方法来加快速度,可是这道题我们需要这个信息,所以不能路径压缩. 剩下的操作就只剩下了暴力并查集,而每次查 ...

  6. 【题解】Luogu P2147 [SDOI2008]洞穴勘测

    原题传送门 这题用Link-Cut-Tree解决,Link-Cut-Tree详解 我不太会踩爆Link-Cut-Tree的并查集做法qaq 我们用Link-Cut-Tree维护连通性(十分无脑) Co ...

  7. bzoj2049 [Sdoi2008]Cave 洞穴勘测

    [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为J ...

  8. [SDOI2008]Cave 洞穴勘测

    题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...

  9. bzoj2049 Cave 洞穴勘测 LCT模版

    2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec  Memory Limit: 259 MB Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了 ...

最新文章

  1. java人工洗牌窗口程序_求解,用JAVA写洗牌与发牌模拟程序
  2. edit怎么读英语_名师说学习:英语学习有方法
  3. 如何在FreeBSD中安装Nginx,MySQL,PHP(FEMP)
  4. 生成xml_Java操作XML
  5. 快速完整的基于点云闭环检测的激光SLAM系统
  6. ML基石_56_TheoryOfGeneralization
  7. 微软、华为海思、高通等 50 家公司源代码被泄露!
  8. gdbstub中的基本命令_GDB常用命令使用说明(一)
  9. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
  10. MySQL 5.7.18的安装及主从复制(主从同步)
  11. 飞书开放平台Java-Sdk
  12. 敏捷估算为何使用斐波那契数列(Fibonacci)(
  13. 架构模式 - 微内核模式
  14. 魔百盒CM201-2_YS、ZG、CH、(emmc,nand)_海思3798mv300_全套刷机固件
  15. 坤音键盘(ikun专用)
  16. Cookie是什么?从哪来?存在哪?往哪去?
  17. Synopsys Detect for Jenkins 插件配置
  18. 程序员该造轮子吗,造轮子能升职加薪吗?
  19. UDP数据包协议格式详解
  20. 关于TVS管选型的几个参数 2019-01-19

热门文章

  1. FusionCharts参数的详细说明
  2. Exchange2003-2010迁移系列之六,配置及配置第二台Exchange CAS/HUB服务器
  3. OpenCV_图像平滑
  4. import的几种用法
  5. #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
  6. dropbear环境搭建
  7. DirectX10一矩阵代数(二)
  8. SharePoint【Query Options系列】-- Query Options的一些用法 01. 展开用户列信息
  9. virtualBox 创建新虚拟机
  10. Android中AIDL的使用详解