[Bzoj2049][Sdoi2008]Cave 洞穴勘测
题目链接
一道思路蛮清晰的题,题目有连边,删边,判断两点是否联通三个操作,因为题目中提到了“任意时刻任意两个洞穴之间至多只有一条路径”这一句话。所以在任意时刻,这些联通块都是树形的。所以不是很像splay森林LCT吗。
所以就是LCT板子了......
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn = 10010; 4 typedef long long ll; 5 int fa[maxn], ch[maxn][2], siz[maxn], val[maxn], lazy[maxn], st[maxn]; 6 inline bool isroot(int x) { 7 return ch[fa[x]][0] != x && ch[fa[x]][1] != x; 8 } 9 inline void pushup(int x) { 10 siz[x] = siz[ch[x][0]] + siz[ch[x][1]] + 1; 11 } 12 inline void pushdown(int x) { 13 if (lazy[x]) { 14 if (ch[x][0])lazy[ch[x][0]] ^= 1; 15 if (ch[x][1])lazy[ch[x][1]] ^= 1; 16 swap(ch[x][0], ch[x][1]); 17 lazy[x] = 0; 18 } 19 } 20 inline void rotate(int x) { 21 int y = fa[x], z = fa[y]; 22 int k = ch[y][1] == x; 23 if (!isroot(y)) 24 ch[z][ch[z][1] == y] = x; 25 fa[x] = z; ch[y][k] = ch[x][k ^ 1]; fa[ch[x][k ^ 1]] = y; 26 ch[x][k ^ 1] = y; fa[y] = x; 27 pushup(y); pushup(x); 28 } 29 inline void splay(int x) { 30 int f = x, len = 0; 31 st[++len] = f; 32 while (!isroot(f))st[++len] = f = fa[f]; 33 while (len)pushdown(st[len--]); 34 while (!isroot(x)) { 35 int y = fa[x]; 36 int z = fa[y]; 37 if (!isroot(y)) 38 rotate((ch[y][0] == x) ^ (ch[z][0] == y) ? x : y); 39 rotate(x); 40 } 41 pushup(x); 42 } 43 inline void access(int x) { 44 for (int y = 0; x; x = fa[y = x]) 45 splay(x), ch[x][1] = y, pushup(x); 46 } 47 inline void makeroot(int x) { 48 access(x); splay(x); lazy[x] ^= 1; 49 } 50 int Findroot(int x) { 51 access(x), splay(x); 52 while (ch[x][0]) 53 pushdown(x), x = ch[x][0]; 54 splay(x); 55 return x; 56 } 57 inline void split(int x, int y) { 58 makeroot(x); access(y); splay(y); 59 } 60 inline void Link(int x, int y) { 61 makeroot(x); fa[x] = y; 62 } 63 inline void Cut(int x, int y) { 64 split(x, y); fa[x] = ch[y][0] = 0; pushup(y); 65 } 66 char s[15]; 67 int main() { 68 int n, m, x, y; 69 scanf("%d%d", &n, &m); 70 for (int i = 1; i <= m; i++) { 71 scanf("%s%d%d", s, &x, &y); 72 if (s[0] == 'C') 73 Link(x, y); 74 else if (s[0] == 'D') 75 Cut(x, y); 76 else { 77 if (Findroot(x) == Findroot(y))printf("Yes\n"); 78 else printf("No\n"); 79 } 80 } 81 }
转载于:https://www.cnblogs.com/sainsist/p/11551251.html
[Bzoj2049][Sdoi2008]Cave 洞穴勘测相关推荐
- bzoj2049 [Sdoi2008]Cave 洞穴勘测
[Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为J ...
- bzoj2049 [Sdoi2008]Cave 洞穴勘测——LCT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2049 第二道LCT! 这题是模板题,写了一遍以后感觉对LCT的认识又加深了. 代码如下: # ...
- bzoj2049: [Sdoi2008]Cave 洞穴勘测
[题意] 给你一个森林,要求支持动态加边删边,并会询问在某一个时刻两点是否联通. [题解] 裸的lct,模版题.第一次写对lct,没写过真的难写.... [代码] 1 #include <ios ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测
Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...
- [SDOI2008]Cave 洞穴勘测
题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测——LCT
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2049 省选之前来切一道数据结构模板题. 题意 这是一道模板题. N个点,M次操作,每次加边/ ...
- bzoj2049 Cave 洞穴勘测 LCT模版
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 10 Sec Memory Limit: 259 MB Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了 ...
- [BZOJ2049] [SDOI2008] 洞穴勘测
题目描述 辉辉热衷于洞穴勘测. 某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴.假 ...
- SDOI 2008 洞穴勘测
Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...
- 【LCT】洞穴勘测(luogu 2147/金牌导航 LCT-1)
洞穴勘测 luogu 2147 金牌导航 LCT-1 题目大意 给你若干操作,有三种操作: 1.连接两个点 2.吧两个点之间的连边断掉(保证有这条边) 3.查询两个点之间是否连通 样例 #1 输入样例 ...
最新文章
- C语言-getopt函数
- Java Annotations: Explored Explained--转载
- 通过源代码研究ASP.NET MVC中的Controller和View(三)
- 【报告分享】2020快手短视频直播电商营销增长宝典.pdf(附下载链接)
- php 科学计数 位数,PHP采用超长位数字运算防止数字以科学计数法显示的实例
- 被调用的对象已与其客户端断开连接 win10_【完整案例】基于Socket开发TCP传输客户端...
- nginx.conf文件配置及nginx重启脚本
- python 象棋算法接口_python输出国际象棋棋盘的实例分享
- 【Java】23 函数式编程
- 计算机基础知识在教学的应用,计算机基础知识中项目教学法的应用
- 图解Windows10+优麒麟双系统安装
- mongodb联表查询
- [TGE游戏引擎粒子系统研究]制作逼真得爆炸效果--展示篇
- 基于顺序存储结构的图书信息表
- 2021年全球粘胶纤维收入大约15150百万美元,预计2028年达到20740百万美元
- 前端福利:使用Wallpaper Engine让自己的桌面炫酷起来
- 87键键盘实现小键盘数字/键盘改建软件
- 2014134026武雪芹
- deepin 团队_深度系统(Deepin)浅度体验记——应用软件篇
- 2023淮阴工学院计算机考研信息汇总